gpt4 book ai didi

mysql - IF...ELSE 在 WHERE 子句 MySQL

转载 作者:IT王子 更新时间:2023-10-29 00:30:56 26 4
gpt4 key购买 nike

我试图在 MySQL WHERE 语句中使用 IF...ELSE 函数但没有成功。

我有这个问题:

SELECT id 
FROM mytable
WHERE restrcountry NOT LIKE '%*nl*%'
AND (IF languages LIKE '%*nl*%', 1, 0) = 1;

好的,这是我使用 IF 语句的查询。

但是,我怎样才能同时使用“ELSE”呢?

例如,我想做类似的事情:

IF language match nl --->选择语言为nl的id字段

ELSE IF language NOT match nl ---> 选择语言为 en 的 id 字段

请问我如何在 MySQL 查询中执行此操作?

感谢大家!

最佳答案

IF 的语法是:

 IF(test_expr, then_expr, else_expr)

所以你可以做类似 IF(test1, result1, IF(test2, result2, else_result)) 但它的可读性不是很好,所以有 CASE为此目的表达。

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

如果要条件选择列,可以直接在选择字段中使用IF:

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

请注意,where 子句中的表达式要么是TRUE,要么是FALSE,所以写成

IF(expr, TRUE, FALSE)

相同
expr

关于mysql - IF...ELSE 在 WHERE 子句 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15683185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com