sql >> Database >  >> RDS >> Mysql

CASE gebruiken in de WHERE-component

U hoeft CASE...WHEN niet te gebruiken, u kunt een OR-voorwaarde gebruiken, zoals deze:

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

dit betekent dat als id<800, succes 1 moet zijn om de voorwaarde als waar te evalueren. Anders zal het hoe dan ook waar zijn.

Het komt minder vaak voor, maar u kunt nog steeds CASE WHEN gebruiken, zoals dit:

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

dit betekent:return success=1 (wat TRUE of FALSE kan zijn) in case id<800, of geef anders altijd TRUE terug.



  1. Onmiddellijke bestandsinitialisatie:impact tijdens installatie

  2. REGEXP_SUBSTR() Functie in Oracle

  3. Laravel 5.1 - Een databaseverbinding controleren

  4. Is MySQL index_length in bytes?