sql >> Database teknologi >  >> RDS >> Mysql

Mysql sag virker ikke

Når du sætter kolonnenavn efter CASE , bør du ikke bruge WHEN column = value , brug bare WHEN value , fordi den automatisk sammenligner kolonnen med hver værdi i WHEN klausuler.

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 , 

Når du gør begge dele, tester du week_day = (week_day = -1) , week_day = (week_day = 1) osv. Det virker på mandag, fordi 1 = (1 = 1) svarer til 1 = 1 , hvilket er sandt; men på tirsdag er det 2 = (2 = 2) , hvilket svarer til 2 = 1 , hvilket er falsk.




  1. To forespørgsler mysql i ét objekt json

  2. ORA-24408:kunne ikke generere entydigt servergruppenavn

  3. mysql workbench records limit

  4. Overvågning af transaktionslog