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

użycie CASE w klauzuli WHERE

Nie musisz używać CASE...GDY możesz użyć warunku LUB w ten sposób:

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

oznacza to, że jeśli id<800, sukces musi wynosić 1, aby warunek został oceniony jako prawdziwy. W przeciwnym razie i tak będzie to prawda.

Jest to mniej powszechne, jednak nadal możesz użyć CASE WED, tak jak poniżej:

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

to oznacza:zwróć success=1 (która może być PRAWDA lub FAŁSZ) w przypadku id<800 lub zawsze zwracaj PRAWDA w przeciwnym razie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt Google Apps do eksportowania arkuszy kalkulacyjnych do mySQL wykonywany na wielu plikach

  2. Jak znaleźć brakujące wiersze danych za pomocą SQL?

  3. Wstaw MySQL z obszaru tekstowego do wielu wierszy

  4. Ściągawka z wydajnością MySQL

  5. Jak mogę zaimplementować commit/rollback dla MySQL w PHP?