gpt4 book ai didi

Mysql: CONCAT_WS ('' , col) vs (col 为空或 col=0)

转载 作者:行者123 更新时间:2023-11-29 07:28:53 26 4
gpt4 key购买 nike

两者之间有什么区别吗:

  • CONCAT_WS('', 列)=''

  • 列为空或列=0 *(以及可选的“OR column="”')*

其中一个更好/更快吗......?

SELECT my_fields FROM my_table 
WHERE my_terms_clause='anything' AND CONCAT_WS( '', nb_check ) = ''

或者

SELECT my_fields FROM my_table 
WHERE my_terms_clause='anything' AND (p.nb_check is null OR p.nb_check = 0)

我通常使用“列为空或列= 0”,但我只想“专家的提示”。

最佳答案

你绝对应该使用:

where col is null or column = 0

首先,代码的意图更加清晰。其次,函数调用会阻止优化器使用索引。老实说,也让优化器很难使用索引。

编写查询的最有效方法可能是使用union all:

SELECT my_fields
FROM my_table p
WHERE my_terms_clause = 'anything' AND p.nb_check is null
UNION ALL
SELECT my_fields
FROM my_table p
WHERE my_terms_clause = 'anything' AND p.nb_check = 0;

这可以利用 my_table(my_terms_clause, nb_check) 上的索引

关于Mysql: CONCAT_WS ('' , col) vs (col 为空或 col=0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33478278/

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