gpt4 book ai didi

php - MySQL:使用单个输入搜索多列(GoogleMaps 样式)

转载 作者:行者123 更新时间:2023-11-30 22:36:26 25 4
gpt4 key购买 nike

我有一个加载了 geonames's data 的数据库对于美国。我想对该表执行查询,以从与 Google map 具有或多或少相同功能的单个输入中找到最接近的匹配项(即,用户可以输入邮政编码、逗号分隔的分层地址,如 'Nevada, Las Vegas' 或两者的结合)。

到目前为止,我已将 FULLTEXT 索引添加到表的相关字段,并从输入中执行查询,如下所示:

SELECT * FROM places WHERE MATCH(country_code, postal_code, place_name, admin_name1, admin_code1, admin_name2, admin_code2) AGAINST (?);

在哪里?由 php 脚本的输入替换。虽然它有点工作,但它没有按预期执行,它没有将最相关的匹配项放在首位并且需要一个完整的词才能开始查找匹配项(我尝试使用通配符但变得更糟)。如果输入有逗号,我也尝试拆分输入,但查询的逻辑开始变得困惑,无法生成性能更好的脚本。

有没有办法在这个数据库中以如此宽泛的术语搜索匹配项?

我正在通过 AJAX 查询数据库,所以我需要它开始搜索,即使单词还没有完成(我正在使用 jQuery 的预输入)。

提前致谢!

最佳答案

用您的文本替换 string_to_be_searched 文本。

SELECT * FROM places WHERE 
instr(concat_ws(" ",country_code, postal_code, place_name, admin_name1,
admin_code1, admin_name2, admin_code2),"string_to_be_searched")>0;

关于php - MySQL:使用单个输入搜索多列(GoogleMaps 样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426298/

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