Hace poco que nos hemos encontrado con un trigger en MySQL que hacía algo parecido a:
1 |
SELECT IF('un valor cualquiera' <> NULL, 'verdad', 'mentira'); |
A simple vista, uno diría que esta SELECT devolvería «verdad» pero si la ejecutáis podéis ver que devuelve «mentira».
El error creo que viene de olvidarnos que cada lenguaje tiene sus propias características y no siempre funcionan igual. En el caso de MySQL tiene su propia forma de comparar con valores nulos para ello se usa «IS NULL» ó «IS NOT NULL» también podemos usar la función COALESCE() para poder usar comparadores como el anterior.
1 |
SELECT IF('un valor cualquiera' IS NOT NULL, 'verdad', 'mentira'); |
Esto sí devuelve «verdad».
Comments are closed.