我无法生成sql查询以搜索自动完成输入的以下格式的城市。系统会提示用户输入以下格式之一:
1- city
2-城市,国家
3- city,state
4-城市,州,国家
我的数据库表具有以下结构
ID City State Country
我目前使用的查询是(不起作用):
SELECT * FROM destinations WHERE City LIKE '%$city%' OR Country LIKE '%$country%' OR State LIKE '%$state%'
通过将搜索词从带逗号的字符串转换为不带逗号的数组来获取$ city,$ country和$ state。这可能会更好地澄清:
$query = explode(',', $term);
$city = $query[0]; //and so on
请帮忙!我将不胜感激。
答案 0 :(得分:1)
全文搜索越好。
Mysql浏览文本,研究其中的单词并维护一个单独的列表 - 哪些单词包含相同的文本。当您搜索此文本字段时,mysql会转到单词列表,快速检查您查找的单词是否存在,并快速返回答案。
在%like%
的情况下,数据库将再次解析文本(将其从保存文件中拉出,解密字符串并执行慢速字符串比较)。
全文搜索仅适用于Myisam表。