Mysql
 sql >> база данни >  >> RDS >> Mysql

Случаят на Mysql не работи

Когато поставите име на колона след CASE , не трябва да използвате WHEN column = value , просто използвайте WHEN value , защото автоматично сравнява колоната с всяка стойност в WHEN клаузи.

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 , 

Когато правите и двете, вие тествате week_day = (week_day = -1) , week_day = (week_day = 1) и т.н. Работи в понеделник, защото 1 = (1 = 1) е еквивалентен на 1 = 1 , което е вярно; но във вторник е 2 = (2 = 2) , което е еквивалентно на 2 = 1 , което е невярно.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql грешка 1364 Полето няма стойности по подразбиране

  2. недефиниран метод `eq' за nil:NilClass с rails 3 и ruby ​​enterprise на ubuntu hardy

  3. Позоваване на външни ключове в същата колона

  4. Има ли добри реализации на CachedRowSet, различни от собствената Sun?

  5. MySQL Сортирайте по азбучен ред, но игнорирайте