gpt4 book ai didi

mysql查询喜欢

转载 作者:可可西里 更新时间:2023-11-01 08:06:27 25 4
gpt4 key购买 nike

我需要在两个表中选择任何出现的单词(关键字搜索),我所做的查询是这样的:

SELECT t1.fname, t1.lname, t2.* FROM t1 , t2  
WHERE t2.title LIKE "%test%"
OR t2.desc LIKE "%test%"
OR t2.inc LIKE "%test%"
OR t1.fname LIKE "%test%"
OR t1.lname LIKE "%test%"
AND t1.c_id = t2.c_id;

由于数据库中有大量数据,这个特定的搜索(使用“测试”关键字)需要几分钟,我想知道如何优化它。我尝试使用 LEFT JOIN,但似乎我做错了 - 因为结果延迟很多,但查询执行得非常快。

是这样的:

SELECT * FROM t2 AS a 
LEFT JOIN t1 AS b ON a.c_id = b.c_id
WHERE a.desc LIKE '%test%'
OR a.title LIKE '%test%'
OR a.inc LIKE '%test%'
OR b.fname LIKE '%test%'
OR b.lname LIKE '%test%';

任何帮助将不胜感激......谢谢。

最佳答案

您的第一个语句不是您想要的:AND 子句采用 precedence通过 OR 所以你实际上写了

t2.title LIKE "%test%" 
OR t2.desc LIKE "%test%"
OR t2.inc LIKE "%test%"
OR t1.fname LIKE "%test%"
OR (t1.lname LIKE "%test%" AND t1.c_id = t2.c_id;)

这最终导致(有点偏斜) natural join在 t1 和 t2 之间返回许多行。

关于mysql查询喜欢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230523/

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