gpt4 book ai didi

MySQL: select * from table where col IN (null, "") 可能没有 OR

转载 作者:IT老高 更新时间:2023-10-28 23:46:49 26 4
gpt4 key购买 nike

是否可以在不使用 or 的情况下在 MySQL 中对空字符串和 NULL 值进行选择?

这个:

   select * from table where col IN (null, "");

不起作用,它会忽略 null(或可能将其与字符串 'null' 匹配)。

最佳答案

SELECT  *
FROM mytable
WHERE COALESCE(col, '') = ''

但是,请注意,如果列被索引,则比 OR 查询效率更高:

SELECT  *
FROM mytable
WHERE col = '' OR col IS NULL

这将使用索引上的 ref_or_null 访问路径。

如果您需要从值列表中选择 NULLs,只需将所有非空值放入列表中并添加单个 OR IS NULL 条件:

SELECT  *
FROM mytable
WHERE col IN ('val1', 'val2', 'val3') OR col IS NULL

这也将使用 col 上的索引。

关于MySQL: select * from table where col IN (null, "") 可能没有 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147824/

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