gpt4 book ai didi

mySQL 'where name NOT IN' 不工作?

转载 作者:行者123 更新时间:2023-11-28 23:14:44 25 4
gpt4 key购买 nike

我有这个声明:

SELECT id, name 
FROM players
WHERE this = 1
AND name NOT IN (SELECT name
FROM players_online
WHERE this = 'that')
ORDER BY RAND()
LIMIT 3, 6

所有列均已正确命名。不会出现 SQL 错误,它只是不返回任何结果。

根据我在文档中阅读的内容,它应该可以工作,但实际上没有。

有什么想法吗?

最佳答案

不要对子查询使用 NOT IN。如果子查询中的任何值为 NULL,则语义错误。在这种情况下,NOT IN 的计算结果永远不会为 TRUE,因此根本不会返回任何行。

相反,使用NOT EXISTS:

SELECT p.id, p.name
FROM players p
WHERE p.this = 1 AND
NOT EXISTS (SELECT 1
FROM players_online po
WHERE po.name = p.name AND po.this = 'that'
)
ORDER BY RAND()
LIMIT 3, 6;

关于mySQL 'where name NOT IN' 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44387922/

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