2010-07-12 30 views
8

Tengo column a y column b en la tabla emp. Me gustaría recuperar los valores de esas columnas y encontrar la diferencia entre ellos con una función. La función devolvería verdadero por una diferencia de 0; de lo contrario, devolverá falso. No sé cómo devolver un valor.¿Cómo devolver un valor booleano desde una función en MySQL?

Además, ¿cómo almaceno los valores recuperados en una variable?

Respuesta

16

MySQL realmente no tiene booleanos. TRUE y FALSE son alias a 1 y 0, y el tipo de columna BOOL es solo un alias para TINYINT(1). Todas las expresiones que parecen dar resultados booleanos realidad devuelven 0 ó 1.

Se puede escribir la consulta como:

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

ordenado. Probé esto para una prueba y funcionó como un encanto :) –

+0

+1 para dar una forma de expresar el resultado, no sabía que la instrucción "si" para MySQL –

Cuestiones relacionadas