我发现MySQL的行为很奇怪:
我有一个带有变音字母的字符串,我在其上运行一些IF表达式.就像是:
IF(length(field) < 10, '', replace(field, "\n", "<BR>"))
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但是,如果我通过CASE替换它,那么结果会在第一个unlaut字母上被删除!
CASE WHEN length(field)<10 THEN '' ELSE replace(field, "\n", "<BR>") END
Run Code Online (Sandbox Code Playgroud)
此外,我注意到只有在查询中还有GROUP BY部分时才会发生.
我无法理解CASE和IF之间的区别 - 从逻辑的角度来看,两者应该完全相同.
任何人都知道为什么这两个命令之间存在差异?
mysql ×1