gpt4 book ai didi

mysql - mysql中CASE和IF有什么区别

转载 作者:可可西里 更新时间:2023-11-01 06:46:03 24 4
gpt4 key购买 nike

我发现了非常奇怪的 MySQL 行为:

我有一个带有变音字母的字符串,我在上面运行了一些 IF 表达式。像这样的东西:

IF(length(field) < 10, '', replace(field, "\n", "<BR>"))

它工作正常。

但是,如果我用 CASE 替换这个 if,那么结果会在第一个 unlaut 字母处被截断!

CASE WHEN length(field)<10 THEN '' ELSE replace(field, "\n", "<BR>") END

另外,我注意到只有当查询中也有 GROUP BY 部分时才会发生这种情况。

我无法理解 CASE 和 IF 之间的区别 - 从逻辑的角度来看,两者应该返回完全相同的结果。

有人知道为什么这两个命令有区别吗?

最佳答案

"IF是单个fork,"CASE"可以是多个如果您有两个以上的值可选值,请使用“Case”,如果您只有两个值,请使用“IF”。

CASE的一般结构是:

CASE x
WHEN a THEN ..
WHEN b THEN ..
...
ELSE
END

IF的一般结构:

IF (expr)
THEN...
ELSE...
END

所以,基本上 IF 是一个只有一个“WHEN”语句的 CASE。

关于mysql - mysql中CASE和IF有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13699908/

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