我有一个比较 2 个表的查询:
SELECT a.id FROM a
LEFT JOIN b
ON a.id = b.id
WHERE b.id IS NULL
可以使用这样的替代方案吗?
SELECT a.id FROM a
LEFT JOIN b
ON a.id = b.id
WHERE LENGTH(b.id) = 0
请记住,在 b 中找不到的 a.id 将返回“NULL”。
最佳答案
我不明白您为什么喜欢那样,但无论如何,更改为您的第二个查询是不正确的。 length(b.id)
将返回 null,而不是 0,因为 b 中的行与 a 中的行不匹配。
这很容易测试,就像我在 sqlfiddle 上做的一样.
关于MySQL IS NULL 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043283/