gpt4 book ai didi

mysql - 简化这个 MySQL select - 我真的希望 concat_ws 生成 null

转载 作者:行者123 更新时间:2023-11-29 09:26:10 25 4
gpt4 key购买 nike

这给出了所需的输出,但它非常难看

select if(concat_ws('~', x, y) = '', null, concat_ws('~', x, y));

如果 x 和 y 为 null 那么我希望返回 null,但它给出 '',普通 concat 可以做到这一点,但我想要分隔符(当 x, y 不为 null 时)

我尝试使用变量,但似乎它们设置得不够早,无法在同一选择中重用。我与一个框架绑定(bind)在一起,所以我真的不能做太多事情,它需要在一个选择字段中完成,就像上面一样。

最佳答案

您可以将 If() 函数重写为 NULLIF(),它是您正在使用的相同逻辑的缩短版本

SELECT NULLIF(concat_ws('~', x, y) , '');

我怀疑除了让我们人类更容易阅读之外,这还会给您的查询带来任何优化。话虽如此,我相信这是该查询将获得的最简洁和最优化的查询,因为 concat_ws 在设计上是空安全的。

关于mysql - 简化这个 MySQL select - 我真的希望 concat_ws 生成 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59582460/

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