Mysql
 sql >> Datenbank >  >> RDS >> Mysql

IF... ELSE in WHERE-Klausel MySQL

Die Syntax für IF ist :

 IF(test_expr, then_expr, else_expr)

Sie könnten also so etwas wie IF(test1, result1, IF(test2, result2, else_result)) machen aber es wäre nicht sehr lesbar, also gibt es den CASE Ausdruck für diesen Zweck.

CASE WHEN  test1 THEN result1
WHEN test2 THEN result2
ELSE else_result END

Wenn Sie eine ausgewählte Spalte konditionieren möchten, können Sie den IF verwenden direkt in die Auswahlfelder:

SELECT IF(match, nl_column en_column) AS lang 
FROM table

Beachten Sie, dass ein Ausdruck in einer where-Klausel entweder TRUE ist oder FALSE , schreiben Sie also

IF(expr, TRUE, FALSE)

ist dasselbe wie

expr