mysql - 在 mysql LIKE 中将两个表中的两个字段显示为一个字段

标签 mysql select sql-like

我想实现类似自动完成的搜索。我有两个表,Location 和 SubLocation。

我只想为这个 like 返回一个字段。这是我的查询

SELECT l.loc_name,sl.sub_loc FROM Location l,SubLocation sl 
 where l.loc_name LIKE '$term%' OR sl.sub_loc='$term%'

我想将两个表的匹配结果显示为一个返回值。EG,如果我键入 D,那么我可以从第一个表中查看迪拜,从第二个表中查看 DubaiMarina 作为一个列

最佳答案

你可以使用UNION

SELECT l.loc_name FROM Location l
 where l.loc_name LIKE '$term%' 
UNION
SELECT sl.sub_loc FROM SubLocation sl 
 where sl.sub_loc='$term%'

如果表没有重复项,您可以将 UNION 替换为 UNION ALL 因为 union all 选项不会查找重复项,它可能会更快一些,具体取决于关于查询返回的数据量。

关于mysql - 在 mysql LIKE 中将两个表中的两个字段显示为一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686834/

相关文章:

php - 合并来自 2 个数据库的数据库内容,需要避免不精确的字符串相似性

html - Oracle 数据库查询截断第一行

php - 需要有关 mysqli 准备好的语句的一些帮助

linux - 如何在 bash 脚本中的 select 语句中调用脚本

mysql - 将 LIKE %..% 与 MySQL 中的字段值一起使用

mysql - 如何搜索以包含 % 和 _ 字符的另一个值开头或结尾的值?

mysql - 更改mysql数据库的位置

mysql - 使用单个查询更改多个表?

MySQL 使用 GROUP BY 对多列进行分组

java - 如何从两个整数中随机选择一个?