当前位置: 首页 > 面试题库 >

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

家浩瀚
2023-03-14
问题内容

我的数据库中有三个表:

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 ."%'");

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

任何帮助将不胜感激!


问题答案:
$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值来确定哪个行来自哪个表。



 类似资料:
  • 问题内容: 我正在使用此代码突出显示搜索关键字: 但是,这仅突出显示一个关键字。如果用户输入多个关键字,则会缩小搜索范围,但不会突出显示任何单词。如何突出显示多个单词? 问题答案: 正则表达式是必经之路! 要以不区分大小写的方式进行匹配,请在正则表达式中添加“ i” 注意:对于像“ä”这样的非英语字母,结果可能会因地区而异。

  • 问题内容: 我有一个代码,可以使用ajax动态搜索数据库中的数据,但是一次只能搜索1个关键字。我想对其进行修改,以便可以搜索多个关键字。现在,如果在数据库中输入2个用空格分隔的关键字,则数据不会用空格分隔,将不会有结果。如果在数据库中,则数据为: ‘playstation3’或’play cool station3’ 我搜索: 游戏站 没有结果。我想知道是否可以修改我的代码,以便我可以搜索2个或更

  • 这样地:http://gdata.youtube.com/feeds/api/videos?alt=rss 我可以同时搜索作者和关键词, 但是我在v3版本中找不到它 https://www.googleapis.com/youtube/v3/search?part=snippet

  • 搜索关键字推荐 调用地址 http://api.bilibili.cn/suggest 参数 字段 必选 类型 说明 term true string 关键字 sponly false int 只显示专题 返回 这个返回非常奇葩,没有数组装数据,我就随便写一下,看不懂自己调用分析结果 返回值字段 字段类型 字段说明 {x} string 第 x 个关键词建议

  • 如果我想搜索那些名字中包含巴黎的地方,我会做以下操作: 这样我就能看到所有有巴黎这个名字的地方。 然而,我如何能够搜索到其他标准的地方,如 null 在Cloud Firestore中这甚至是可能的吗?如果没有的话,有没有其他方法可以做到这一点?

  • 我已经安装了PocketSphinx演示,它在Ubuntu和Eclipse下运行良好,但是尽管尝试过,我还是不知道如何添加对多个单词的识别。 我只想让代码识别单个单词,然后我可以在代码中,例如“up”、“down”、“left”、“right”。我不想识别句子,只想识别单个单词。 在这方面的任何帮助都将不胜感激。我发现其他用户也有类似的问题,但到目前为止还没有人知道答案。 让我困惑的一件事是,为什