Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/05/2012, 15:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como usar 2 select if juntos

Si en la tabla existe un id = 1, esa consulta jamás devolverá datos, a causa de que en el momento en que se evalua el WHERE, @foo es NULL.
Como la asignación es dinámica, el valor de las variables del SELECT sólo se asigna sobre los datos resultado. Pero como para el momento evaluar el WHERE, aún no se le asignó valor alguno a @foo, la consulta no devuelve dato alguno (no, NULL no es un dato, es un estado).

Es tan evidente esto, que si le asignas un valor de espacio vacío a @foo antes de la operación, esta si da resultados:
Código MySQL:
Ver original
  1. mysql> set @foo := '';
  2. Query OK, 0 rows affected (0.00 sec)
  3.  
  4. mysql> SELECT
  5.     ->
  6.     -> @var:=IF(1=1,'si','no') var,
  7.     -> @foo:=IF(@var='si','hola','adios') foo
  8.     -> from dual
  9.     -> WHERE @foo != 'hola';
  10. +-----+------+
  11. | var | foo  |
  12. +-----+------+
  13. | si  | hola |
  14. +-----+------+
  15. 1 row in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)