php - 从多个表自动完成

标签 php mysql autocomplete multiple-tables

我想知道从多个表中获取自动完成结果的最有效方法是什么?

需要注意的是;我希望能够确定记录来自哪个表。

例如,给定这些示例表:

+- People
   +- id
   +- name
   +- age

+- Places
   +- id
   +- name
   +- distance

+- Things
   +- id
   +- name
   +- color

虽然包含一些关于这个问题的任意数据,但这里的主要焦点是 name 列(尽管这些可能是其他东西,或者每个表被查询多个)

无论如何,我正在尝试弄清楚如何查询这些表中的每一个以获取自动完成的数据,并返回数据以及它来自哪个表。例如,字母 A 的输出可能如下所示:

Apple (Things)
Amy (People)
Aaron (People)
Anaheim (Places)
Axe (Things)

这是通过单个查询还是跨多个表的多个查询最好地完成?

提前致谢:)

最佳答案

您可以在单个查询中使用 at union 来完成:

SELECT name, 'Things' as source FROM Things WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'People' as source FROM People WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'Places' as source FROM Places WHERE name LIKE 'A%'

现在您将同时获得匹配的 name 和源表,并且您可以为自动完成下拉项很好地格式化它。

关于php - 从多个表自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5051266/

相关文章:

javascript - Jquery Ui AutoComplee select ui.item 未定义

php - 为什么 Doctrine 2.2 使用 -namespace- 和 -use- 而没有任何包含或要求语句?

php - 使用 PHP 选择合适的背景/前景色

php - 解析 JSON 提要

python - 无法连接到 Django 2.x.x Python AppEngine 中的 MySQL 服务器

c# - 将数据导出到具有固定长度记录的文本文件

Mysql 命令没有返回错误并且不导入 sql 文件。为什么?

php - 使用 google Analytics reporting api v4 时出错

vim - 在 vim 中自动完成搜索词

autocomplete - 如何在Sublime Text中创建片段