Proměnné v MySQL aneb používáme alias v SELECT dotazu

Narazil jsem na výbornou syntaktickou pomůcku v MySQL, která mi okamžitě začala zjednodušovat život. Stává se mi totiž, že potřebuji s hodnotou jednoho sloupce pracovat v jiném sloupci. Při použití standardních aliasů vytvořených s pomocí AS však narážím na problém.

Následující metoda představuje přímočarý postup, který však není funkční.

SELECT (1 + 1) as soucet, soucet + 1

Databáze u druhého sloupce ukončí provádění dotazu s tím, že nezná soucet, i když se jedná o alias předcházejícího sloupce.

Kýženého efektu dosáhneme díky proměnným. Těm se přiřazují hodnoty zápisem @jmeno:=hodnota. Aktuálně uchovávaný údaj vrátí @jmeno. Výše uvedený příklad by po nasazení proměnných vypadal takto:

SELECT @soucet:=(1 + 1) as soucet, @soucet + 1

Rázem získáváme číslo 2 a v druhém sloupci správný součet 3.

MySQL - proměnné

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>