如何解决SQL -- SELECT 正在返回列 = True 时的值,但不是当 = False 时
SELECT Language,IsOfficial
FROM countrylanguage c
JOIN country a
ON a.Code = c.CountryCode
WHERE Name = "United States"
AND IsOfficial = False;
当我设置 IsOfficial = True(该语言是国家的官方语言)时,它正确显示了 IsOfficial = True 的语言。
即使我删除了以 AND 开头的行,IsOfficial 也会显示所有语言的 True 或 False。
但是,当我设置 AND IsOfficial = False 时,它根本不显示任何内容。
为什么不显示非官方语言?
解决方法
我猜想 isOfficial
实际上可能是 NULL
而不是 false
。你可以试试:
where not (isOfficial <=> true)
,
MySQL 没有实际的布尔数据类型。
在 MySQL 中,零被认为是假的,非零值被认为是真。要使用布尔文字,请使用分别计算为 1 和 0 的常量 TRUE 和 FALSE。
检查 IsOfficial 的数据库类型。如果你不满足条件 IsOfficial=false,那么 IsOfficial 实际上不是零,它是别的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。