sql >> Database teknologi >  >> RDS >> Mysql

ved at bruge CASE i WHERE-sætningen

Du behøver ikke bruge CASE...HVORNÅR kan du bruge en OR-betingelse som denne:

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

dette betyder, at hvis id <800, skal succes være 1 for at betingelsen kan vurderes som sand. Ellers vil det være sandt alligevel.

Det er mindre almindeligt, men du kan stadig bruge CASE WHEN, sådan her:

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

det betyder:returner success=1 (som kan være SAND eller FALSK) i case id<800, eller returner altid TRUE ellers.



  1. Får fejl:Peer-godkendelse mislykkedes for brugerens postgres, når man forsøgte at få pgsql til at arbejde med skinner

  2. MySQL GROUP Efter optælling

  3. Oracle 12.2 Sharding

  4. PI() Eksempler i SQL Server