Variabelen (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 1: | Regel 1: | ||
− | + | == Variabelen & SQL == | |
+ | |||
+ | In reguliere SQL-expressies kun je variabelen gebruiken, zij het met beperkingen. | ||
+ | |||
+ | === Voorbeeld: Set & select een variabele === | ||
set @aanbod = true; | set @aanbod = true; | ||
select @aanbod; | select @aanbod; | ||
1 | 1 | ||
+ | |||
+ | === Voorbeeld: Output van een query naar een variabele === | ||
Om de ééndimensionale output van een query aan een variabele toe te wijzen, moet je haakjes om de query gebruiken, met de punk-komma ''buiten'' het sluithaakje: | Om de ééndimensionale output van een query aan een variabele toe te wijzen, moet je haakjes om de query gebruiken, met de punk-komma ''buiten'' het sluithaakje: | ||
set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt"); | set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt"); | ||
+ | |||
+ | === Voorbeeld: Variabele in where-clause === | ||
+ | |||
+ | Wellicht is de regel, dat je altijd een variabele kunt gebruiken waar je anders een waarde uit een tabel zou gebruiken. In dit voorbeeld gaat die analogie in ieder geval op: | ||
+ | |||
+ | <pre> | ||
+ | set @begin="2016-01-01"; | ||
+ | set @eind="2016-02-01"; | ||
+ | |||
+ | select | ||
+ | "koolborstels", | ||
+ | sum(order_total), | ||
+ | count(*) from koolborstels.uc_orders | ||
+ | where | ||
+ | order_status="Completed" | ||
+ | and | ||
+ | created >= unix_timestamp(@begin) | ||
+ | and | ||
+ | created < unix_timestamp(@eind) | ||
+ | </pre> | ||
== Input-argumenten bij sprocs == | == Input-argumenten bij sprocs == |
Versie van 2 feb 2016 14:54
Variabelen & SQL
In reguliere SQL-expressies kun je variabelen gebruiken, zij het met beperkingen.
Voorbeeld: Set & select een variabele
set @aanbod = true; select @aanbod; 1
Voorbeeld: Output van een query naar een variabele
Om de ééndimensionale output van een query aan een variabele toe te wijzen, moet je haakjes om de query gebruiken, met de punk-komma buiten het sluithaakje:
set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt");
Voorbeeld: Variabele in where-clause
Wellicht is de regel, dat je altijd een variabele kunt gebruiken waar je anders een waarde uit een tabel zou gebruiken. In dit voorbeeld gaat die analogie in ieder geval op:
set @begin="2016-01-01"; set @eind="2016-02-01"; select "koolborstels", sum(order_total), count(*) from koolborstels.uc_orders where order_status="Completed" and created >= unix_timestamp(@begin) and created < unix_timestamp(@eind)
Input-argumenten bij sprocs
Een input-argument (of hoe dat moge heten) in een sproc, heeft geen '@' nodig, maar er zijn wel beperkingen:
CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(in tblname tinytext ) BEGIN select tblname; -- Dit werkt! select * from tblname; -- Werk niet: Foutmelding dat tabel 'tblname' niet bestaat select * from @tblname; -- Syntax error END
Wat hoe dan ook werkt: Een string (inclusief variabelen) samenstellen en executeren.