2010-07-12 16 views
8

I sono column a e column b nella tabella emp. Mi piacerebbe recuperare i valori da quelle colonne e trovare la differenza tra loro con una funzione. La funzione restituirebbe true per 0 differenza altrimenti restituire false. Non so come restituire un valore.Come restituire un valore booleano da una funzione in MySQL?

Inoltre, come si memorizzano i valori recuperati in una variabile?

risposta

16

MySQL non ha davvero booleani. TRUE e FALSE sono alias 1 e 0 e il tipo di colonna BOOL è solo un alias per TINYINT(1). Tutte le espressioni che sembrano dare risultati booleani in realtà restituiscono 0 o 1.

Si potrebbe scrivere la query come:

SELECT (a = b) AS a_equals_b 
FROM emp 
WHERE ... 
9
select a, b, if(a-b=0, true, false) as diff from emp; 
+0

Neat. Ho provato questo per un quiz e ha funzionato come un fascino :) –

+0

+1 per dare un modo di esprimere il risultato, non sapevo che l'istruzione "se" per MySQL –

Problemi correlati