小编典典

PHP mysql使用关键字搜索多个表

mysql

我的数据库中有三个表:

messages
topics
comments

这些表中的每个表都有两个字段,分别称为“内容”和“标题”。我希望能够在我的sql语句中使用“赞”来查看“ messages.content”,“
messages.title”,“ topics.content”,“ topics.title”,“ comments.content”和“
comments”。标题”使用关键字。

到目前为止,我的查询仅能从一张表中找到结果:

mysql_query("SELECT * FROM messages 
WHERE content LIKE '%" . $keyword . "%' 
OR title LIKE '%" . $keyword ."%'");

我还想知道,一旦从多个表中获得结果,如何分辨什么表中的结果?

任何帮助将不胜感激!


阅读 472

收藏
2020-05-17

共1个答案

小编典典

$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值来确定哪个行来自哪个表。

2020-05-17