sql >> Base de Datos >  >> RDS >> Mysql

El caso mysql no funciona

Cuando pones el nombre de la columna después de CASE , no deberías usar WHEN column = value , solo usa WHEN value , porque compara automáticamente la columna con cada valor en el WHEN cláusulas.

CASE type
    WHEN 1 THEN 'General day'
    ELSE 'Special date'
END AS type_changed,
CASE week_day 
   WHEN -1 THEN 'notset' 
   WHEN 1 THEN 'monday' 
   WHEN 2 THEN 'tuesday' 
   WHEN 3 THEN 'wednesday' 
   WHEN 4 THEN 'thursday' 
   WHEN 5 THEN 'friday' 
   WHEN 6 THEN 'saturday' 
   WHEN 7 THEN 'sunday' 
END AS week_day_mod , 

Cuando haces ambas cosas, estás probando week_day = (week_day = -1) , week_day = (week_day = 1) , etc. Funciona el lunes porque 1 = (1 = 1) es equivalente a 1 = 1 , cual es verdad; pero el martes es 2 = (2 = 2) , que es equivalente a 2 = 1 , que es falso.