Mysql
 sql >> Database >  >> RDS >> Mysql

Imposta il risultato della variabile, dalla query

Esistono diversi modi per farlo.

Puoi utilizzare una query secondaria:

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

(come il tuo originale, aggiungi solo parentesi attorno alla query)

oppure usa la sintassi SELECT INTO per assegnare più valori:

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

La sintassi della sub query è leggermente più veloce (non so perché) ma funziona solo per assegnare un singolo valore. La sintassi select into ti consente di impostare più valori contemporaneamente, quindi se hai bisogno di prendere più valori dalla query dovresti farlo piuttosto che eseguire la query ancora e ancora per ogni variabile.

Infine, se la tua query non restituisce una singola riga ma un set di risultati, puoi utilizzare un cursore .