mysql - 在 mysql 中加入自动完成查询

标签 mysql join autocomplete

我想在 mysql php 中为自动完成编写一个查询。我有两个表

CREATE TABLE IF NOT EXISTS `city` (
`id` int(22) NOT NULL AUTO_INCREMENT,
`city_name` varchar(44) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=64 ;

表2是

CREATE TABLE IF NOT EXISTS `area` (
`id` int(22) NOT NULL AUTO_INCREMENT,
`city_id` int(44) NOT NULL,
 `area_name` varchar(33) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2561 ; 

当用户键入任何单词时,它将在区域表(area_name)和城市表(city_name)中搜索...我想在一个字段中返回结果。例如,如果您键入“RAK”,它将在区域表。如果找到它将返回 city_id 和 area_name 否则它将在 city 中搜索。我需要获取 cityid 、 areaid 和匹配的文本。这怎么可能?

最佳答案

使用 OR 子句将导致在两个表中进行表扫描。使用 UNION 将允许使用索引:

    SELECT 
        city_id,
        id AS area_id,
        area_name AS name,
    FROM 
        area
    WHERE
        area_name LIKE 'searchterm%'
UNION
    SELECT 
        id AS city_id
        NULL AS area_id,
        city_name AS name
    FROM 
        city
    WHERE
        city_name LIKE 'searchterm%'
ORDER BY
    name;

关于mysql - 在 mysql 中加入自动完成查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369018/

相关文章:

Java exec() mysqldump 错误 : Couldn't find table ">"

mysql - 合适的子句返回 null 和非 null 值,但其他错误

c# - 首先拆分然后加入字符串的子集

SQL更新与连接

javascript - 为什么我在实现自动完成功能时收到 "Object does not support autocomplete jquery method"运行时错误?

javascript - JQuery UI 自动完成小部件消失

MySQL 近期产品价格更新的百分比变化

MySQL 联合计数

MySQL内连接查询多表

emacs - 用于 emacs 的 Vim 风格的 Omnicomplete?