Sto cercando di eseguire alcuni calcoli all'interno di una query SELECT, utilizzando le variabili utente per farlo. Funziona bene fino a quando non utilizzo funzioni come SUM
per raccogliere dati dalle tabelle unite.Variabili utente MySQL e funzione SUM
esempio semplificato:
SET @a = 1;
SELECT @a := SUM(1 + 1) AS sum, @a
Risultato:
+------+------+ | sum | @a | +------+------+ | 2 | 1 | +------+------+
mi aspetto di essere @a 2 qui.
Altro esempio:
SELECT @b := SUM(1 + 1) AS sum, @b;
+------+------+ | sum | @b | +------+------+ | 2 | NULL | +------+------+
Ora è NULL, perché @b non è stato impostato prima che la query.
Sembra che la variabile non venga sovrascritta con il risultato della funzione SUM. C'è un modo per risolvere questo problema?
cosa si vuole veramente ottenere –
@AnkitSharma: calcoli all'interno di una query SELECT. Quindi ho bisogno di usare il risultato di ad es. 'SUM (1 + 1)' in ulteriori calcoli. Invece di usare 'SUM (1 + 1)' più e più volte, vorrei memorizzarlo in una variabile _ once_, ad es. '@ a', quindi riutilizzare' @ a' in seguito. – Alec
usa 'SET @b = SUM (1 + 1)' –