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

използвайки CASE в клаузата WHERE

Не е нужно да използвате CASE...WHEN, можете да използвате условие ИЛИ, като това:

WHERE
  pw='correct'
  AND (id>=800 OR success=1) 
  AND YEAR(timestamp)=2011

това означава, че ако id<800, успехът трябва да бъде 1, за да се оцени условието като вярно. В противен случай така или иначе ще е вярно.

Това е по-рядко срещано, но все пак можете да използвате CASE WHEN, като това:

WHERE
  pw='correct'
  AND CASE WHEN id<800 THEN success=1 ELSE TRUE END 
  AND YEAR(timestamp)=2011

това означава:върнете success=1 (което може да бъде TRUE или FALSE) в случай, че id<800, или винаги връщайте TRUE в противен случай.



  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 NDB клъстер с ClusterControl

  2. Алтернатива за временна таблица на MySQL в Oracle

  3. Как да извлека JSON данни от MySQL?

  4. mysql ...in where клаузата е двусмислена

  5. Агрегирана функция в MySQL - списък (като LISTAGG в Oracle)