gpt4 book ai didi

php - mysql查询长记录,需要足够长的时间才能显示记录

转载 作者:行者123 更新时间:2023-11-30 01:12:53 25 4
gpt4 key购买 nike

我有一个大约有 500000 条记录的表,我想做的就是使用限制使用 LIKE 通配符进行选择查询,无论我做什么,都需要足够长的时间才能显示结果。这对我来说毫无值(value),我怎样才能让它运行得更好?我的查询如下

查询

 if (isset($_GET['res'])) {
$value = $_GET['res'];
$val = explode(" ", $value);
$query = "SELECT productid, productname, retailprice, lmnr, suplier
FROM comp where productname = '$value' ";
$count = count($val);
for ($i = 0; $i < $count; $i++) {
$query .= " union Select productid, productname, retailprice, lmnr, suplier
from comp where productname like '%" . $val[$i] . "%' ";
}
$query .=" GROUP BY productid, productname, retailprice, lmnr, suplier LIMIT $start, $limit";
}
$result_query = $db->query($query);

感谢任何帮助,谢谢

NOTE I have broken this query into unions as it is used for searching purpose, I want to make query search from all possible matches of a string separating with SPACES i.e. A TEST QUERY. Shall be taken as '%A%', '%TEST%', '%QUERY%'

最佳答案

谈论一个极其复杂的查询。为什么你们必须管理工会?添加到联合中的每个查询都作为其自己的独立查询运行,然后将所有结果组合起来形成最终结果集。很痛苦。为什么不呢

SELECT ...
WHERE (productname IN ($val1, $val2, $val3, etc....))
OR (productname LIKE '%$val[1]%')
OR (productname LIKE '%$val[2]%')
OR ....
etc...

仍然非常丑陋,但至少它只是一个单一查询。当然,与往常一样,我们应该指出您很容易受到SQL injection attacks的影响。 ,使用已弃用的 mysql 接口(interface),等等等等...

关于php - mysql查询长记录,需要足够长的时间才能显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19324582/

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