gpt4 book ai didi

mysql - 当我使用完全相同的查询定位不同的列时,查询不起作用

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

当我定位不同的列(相同的数据类型)时,已知的工作查询失败。此查询有效:

Select * from assets WHERE type = '' AND os LIKE '%7%' AND status <> 'Discarded'

但是这个查询不起作用(它返回空集):

Select * from assets WHERE model = '' AND os LIKE '%7%' AND status <> 'Discarded'

唯一的区别是列type 更改为model。两列都是varchar,并且都有满足这两个查询条件的记录。我尝试过在字段名称周围加上``,但没有帮助。

最佳答案

来自评论:表达式AND status <> 'Discarded'不允许NULL值。

在 SQL 中,NULL <> 'Discarded'是假的,就像 NULL = 'Discarded'也是假的。要检查是否为空,您需要使用 IS NULL .

我认为您的查询应该表达为:

SELECT * 
FROM assets
WHERE
model = ''
AND os LIKE '%7%'
AND (status IS NULL OR status <> 'Discarded')

NB:值得注意的是,一般来说,存储空字符串不是一个好主意。通常使用 NULL 更简单作为默认值。

关于mysql - 当我使用完全相同的查询定位不同的列时,查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55426297/

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