Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sprawa MySQL nie działa

Kiedy umieszczasz nazwę kolumny po CASE , nie należy używać WHEN column = value , po prostu użyj wartości WHEN value , ponieważ automatycznie porównuje kolumnę z każdą wartością w WHEN klauzule.

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 , 

Kiedy robisz jedno i drugie, testujesz week_day = (week_day = -1) , week_day = (week_day = 1) itp. Działa w poniedziałek, ponieważ 1 = (1 = 1) jest równoważne 1 = 1 , co jest prawdą; ale we wtorek jest to 2 = (2 = 2) , co jest równoważne 2 = 1 , co jest fałszywe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak porównywać wydajność MySQL za pomocą SysBench?

  2. Nieprawidłowy wyjątek rzutowania został nieobsługiwany przez MySQL

  3. Wysyłanie zapytań do wielu baz danych jednocześnie

  4. MYSQL wybierz fragment ciągu i uporządkuj według tego fragmentu

  5. Jakiego typu struktury używam do zawartości HTML (MySQL)