gpt4 book ai didi

php - MYSQL 多个like搜索位置

转载 作者:行者123 更新时间:2023-11-29 18:40:54 24 4
gpt4 key购买 nike

我有一个包含超过 310 k 行的大型数据库。每行都有字段:

国家
地区
城市

这是我的查询 - 我正在使用 php pdo 来查询我的属性数据库:

$sql =  'SELECT * FROM properties 
WHERE ( Country = "'.$searchString.'" OR Region = "'.$searchString.'"
OR City = "'.$searchString.'") LIMIT 100';
$stmt = $pdo->query($sql);

现在虽然这一切都很好,但我知道它很困惑并且资源密集,任何人都可以向我解释一种更干净、更快的方法来执行此操作,索引也让我与 mysql 混淆,我应该为三列设置索引吗?您建议使用索引。

任何帮助或指示将不胜感激

最佳答案

索引不会有帮助,因为您已经编写了查询。您可以在 properties(Country, Region, City) 上编写添加索引并使用如下查询:

select p.*
from properties p
where country = @searchString
union all
select p.*
from properties p
where region = @searchString and country <> @searchString
union all
select p.*
from properties p
where city = @searchString and region <> @searchString and country <> @searchString;

这可能会有所帮助,但通常 or 查询会返回太多行,因此索引并不是特别有用。

关于php - MYSQL 多个like搜索位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44947140/

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