我试图从两列中减去查询结果。
桌子:
id | word1 | lang1 | word2 | lang2 |
----+-----------+-------+-----------+-------+
1 | car | 1 | car | 15 |
2 | table | 1 | table | 15 |
3 | Chair | 1 | cahair | 13 |
4 | CDplayer | 15 | CDplayer | 1 |
5 | car | 1 | car | 13 |
我想得到语言 1 中 word1 中所有尚未翻译成语言 12 的单词。所以在这种情况下,它将是主席
表中有 300 万行,运行以下查询需要 1 分钟:
SELECT DISTINCT word1
FROM `translations`
WHERE lang1 = 1
AND lang2 != 15
AND NOT IN (SELECT word1 FROM `translations` WHERE lang2 == 15)
LIMIT 10
分别对两行进行选择非常快 0.006 秒,然后我可以array_diff()
在 PHP 中使用将它们彼此相减,但可能有一种更简单的方法可以直接在 MySQL 中进行。