MySQL:城市,州,国家搜索

时间:2014-05-06 18:40:45

标签: php mysql sql

我无法生成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

请帮忙!我将不胜感激。

1 个答案:

答案 0 :(得分:1)

全文搜索越好。

为什么这比%LIKE%更好?

  • 快得多。
  • 更准确。

它是如何工作的?

Mysql浏览文本,研究其中的单词并维护一个单独的列表 - 哪些单词包含相同的文本。当您搜索此文本字段时,mysql会转到单词列表,快速检查您查找的单词是否存在,并快速返回答案。

%like%的情况下,数据库将再次解析文本(将其从保存文件中拉出,解密字符串并执行慢速字符串比较)。

限制

全文搜索仅适用于Myisam表。