sql >> Databáze >  >> RDS >> Mysql

Nastavte proměnnou výsledek z dotazu

Existuje několik způsobů, jak to udělat.

Můžete použít dílčí dotaz:

SET @some_var = (SELECT COUNT(*) FROM mytable);

(stejně jako váš originál, stačí kolem dotazu přidat závorky)

nebo použijte syntaxi SELECT INTO k přiřazení více hodnot:

SELECT COUNT(*), MAX(col)
INTO   @some_var, @some_other_var
FROM   tab;

Syntaxe dílčího dotazu je o něco rychlejší (nevím proč), ale funguje pouze pro přiřazení jedné hodnoty. Syntaxe select into vám umožňuje nastavit více hodnot najednou, takže pokud potřebujete z dotazu získat více hodnot, měli byste to udělat raději než spouštět dotaz znovu a znovu pro každou proměnnou.

A konečně, pokud váš dotaz nevrací jeden řádek, ale sadu výsledků, můžete použít kurzor .



  1. Jak převést řetězec na časové razítko v PostgreSQL

  2. Mysql dotaz nepoužívá index, když jsou v WHERE proměnné

  3. Jak vypsat všechny databáze pomocí PostgreSQL

  4. Pomocí T-SQL vraťte n-tý prvek s oddělovači z řetězce