使用关键字在 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中文网其他相关文章!