Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

IF... ELSE na cláusula WHERE MySQL


A sintaxe para IF é :
 IF(test_expr, then_expr, else_expr)

então você poderia fazer algo como IF(test1, result1, IF(test2, result2, else_result)) mas não seria muito legível, então há o CASE expressão para o efeito.
CASE WHEN  test1 THEN result1
WHEN test2 THEN result2
ELSE else_result END

Se você deseja condicionar uma coluna de seleção, você pode usar o IF nos campos de seleção diretamente:
SELECT IF(match, nl_column en_column) AS lang 
FROM table

Observe que uma expressão em uma cláusula where é TRUE ou FALSE , assim escrevendo
IF(expr, TRUE, FALSE)

é o mesmo que
expr