我正在运行命令从不存在的历史记录中选择不同的获胜者(从玩家中选择* WHERE玩家.name =历史.获胜者)
如果history.winner
类似于“Test”(注意尾随空格)并且players.name已经有“Test”,那么它似乎会失败
我在不区分大小写方面遇到了同样的问题,因此我将两个字段排序规则设置为 latin1_general_cs(如果这起作用的话)。我认为解决方案可能会导致使用 BINARY 关键字,但这样做
从不存在的历史记录中选择不同的 BINARY 获胜者 (SELECT * FROM Players WHERE BINARYplayers.name = History.winner)
使查询非常非常慢(太慢了,我在 1 分钟后退出) .
最佳答案
您可以使用Trim()函数来完成这个:
SELECT DISTINCT h.winner
FROM history h
WHERE NOT EXISTS
(
SELECT *
FROM players p
WHERE Trim(p.name) = Trim(h.winner)
)
关于mysql - WHERE NOT EXISTS 不适用于尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24068782/