sql >> Databasteknik >  >> RDS >> Mysql

Ställ in variabelresultatet, från fråga

Det finns flera sätt att göra detta.

Du kan använda en underfråga:

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

(som ditt original, lägg bara till parentes runt frågan)

eller använd SELECT INTO-syntaxen för att tilldela flera värden:

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

Underfrågans syntax är något snabbare (jag vet inte varför) men fungerar bara för att tilldela ett enda värde. Select into syntax låter dig ställa in flera värden samtidigt, så om du behöver ta flera värden från frågan bör du göra det istället för att köra frågan om och om igen för varje variabel.

Slutligen, om din fråga inte returnerar en enda rad utan en resultatuppsättning, kan du använda en markör .



  1. MOD() Funktion i Oracle

  2. Det går inte att ansluta till någon av de angivna MySQL-värdarna när anslutningen kontrolleras

  3. Logga DBMS_OUTPUT.Put_Line-utgång i tabell i Oracle med DBMS_OUTPUT.Get_Lines

  4. JOIN (VÄLJ ... ) ue PÅ 1=1?