php - 使用mysql搜索多个表?

标签 php mysql search join

我有这个 sql,可以按条款获取帖子:

SELECT * FROM posts where content like '%" . $_GET['term'] . "%'"

但我想一次搜索更多表格,例如标签和用户。即

SELECT * FROM users where username like '%" . $_GET['term'] . "%'"
SELECT * FROM topics where tag like '%" . $_GET['term'] . "%'"

我想知道如何将它们组合在一起进行查询。我知道你必须用 As 语句做一些事情,即

content as Value
username as Value
tag as Value

我还想获取返回的查询类型,即如果返回的结果是用户,则为 TYPE user,这样我就可以区分它们。

最佳答案

一个简单的 UNION ALL 就足够了:

Select 'user' as hit_type, id from users where username like '%" . $_GET['term'] . "%'"
union all
Select 'topic' as hit_type, id FROM topics where tag like '%" . $_GET['term'] . "%'"

关于php - 使用mysql搜索多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598842/

相关文章:

php - node.js 能做什么而 php 不能,反之亦然?

php - LibreOffice 将 PDF 转换为 Word 作为文本框而不是普通文档

php - 首先按最新对话对 MySQL 收件箱进行排序?

mysql - 数据库 - 检索未使用位置的结果

mysql - IN() 不工作 - MySQL

php - Mysql搜索多行,多表多关键字

regex - 通过正则表达式不区分大小写的有序词搜索

php - MySQL如何获取表中前100个值的MIN和MAX

php - PHP-构建搜索引擎(查询多个数据库)

Javascript:在数组中搜索重复项