gpt4 book ai didi

mysql - Left Join 和几个 LIKE 使我的查询非常慢

转载 作者:行者123 更新时间:2023-11-29 05:30:42 27 4
gpt4 key购买 nike

我正在制作一本字典,我有两个表

word (word, description, ext)
translate (id, word_translate, description_tranlate, org_word, language_id)

所有单词都没有翻译。我只想搜索“word”和“word_translated”。搜索结果应始终显示单词 + 已翻译(如果存在)。我的搜索查询如下所示。

SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (word LIKE "%something%" OR translated_word LIKE "%something%")

查询时间:9.3350 sek

但是如果我只用一个Like ex。像“%something%”这样的词

  SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (word LIKE "%somethin%")

查询时间:0.0451秒

而且只有 *word_traslate LIKE* "%somethin%"

SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (translated_word LIKE "%somethin%")

查询时间:0.0037秒

为什么使用两个 LIKE 时查询花费的时间要长得多。有没有更好的方法来执行此查询。我做错了什么吗?

最佳答案

将 WHERE .. 中的条件移动到 ON( .. )

SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?
AND (word LIKE "%somethin%" OR translated_word LIKE "%somethin%") )

关于mysql - Left Join 和几个 LIKE 使我的查询非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146955/

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