gpt4 book ai didi

Mysql 错误?反相 0 不一致

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:12 25 4
gpt4 key购买 nike

所以我真的很好奇这是什么原因,或者这是否真的是一个需要提交给 MySQL 开发团队的错误。

这些查询应该是等价的(它们可能难以阅读):

SELECT !0, !!0, !!!0, !!!!0, !!!!!0, !!!!!!0;
SELECT NOT 0, NOT NOT 0, NOT NOT NOT 0, NOT NOT NOT NOT 0, NOT NOT NOT NOT NOT 0, NOT NOT NOT NOT NOT NOT 0;
SELECT !(0), !(!(0)), !(!(!(0))), !(!(!(!(0)))), !(!(!(!(!(0))))), !(!(!(!(!(!(0))))));

我希望这些返回:

true, false, true, false, true, false

前两个执行,但最后一个返回:

true, true, false, false, true, true

谁能解释一下?


如果有人好奇,这源于向我提出的问题。因为 0 被视为 false 而 1 被视为 true,您可以使用一个字段 - 我们称它为 bool_field - 如下所示:

SELECT * FROM something WHERE bool_field

SELECT * FROM something WHERE !bool_field

通常,如果我想确保某些东西被视为 bool 值(通常不是特定语言),但又不想反转它的值,我会这样写:

SELECT * FROM something WHERE !!bool_field

这导致了一个非常奇怪的模式,并最终导致了上述问题。


MySQL版本是5.5.4

最佳答案

6 年前,已经为此提交了一份 MySQL 错误报告!

http://bugs.mysql.com/bug.php?id=55477

关于Mysql 错误?反相 0 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580795/

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