首页  >  文章  >  数据库  >  如何在MySQL中跨表进行关键字搜索并识别源表?

如何在MySQL中跨表进行关键字搜索并识别源表?

Linda Hamilton
Linda Hamilton原创
2024-11-23 12:32:16852浏览

How to Perform a Keyword Search Across Multiple Tables in MySQL and Identify the Table of Origin?

使用关键字在 MySQL 中进行多表搜索

问题:

在数据库中三个表(消息、主题和评论),每个表包含“内容”和“标题”字段,如何我们使用关键字在所有表中执行 LIKE 搜索?我们如何区分每个结果的来源表?

解决方案:

要在 PHP 和 MySQL 中使用关键字搜索多个表,我们可以使用 UNION 查询:

$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') 
UNION
(SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') 
UNION
(SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%')";

mysql_query($query);

此查询将每个表的结果合并为一个输出。添加到每行的“类型”字段用作其源自的表的标识符。执行此查询后,我们可以迭代结果并根据“type”值确定源表。

以上是如何在MySQL中跨表进行关键字搜索并识别源表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn