【发布时间】:2017-03-07 23:57:06
【问题描述】:
我有一段简单的代码,它从我的一个数据库表的所有行中搜索三列。表名是“文章”,我正在搜索的 3 列是“标题、描述和标签”。目前我搜索一个单词或短语,它会显示结果,我想知道是否有办法让我显示在结果中找到了 3 列中的哪一列。我是否必须对作为结果返回的每一行运行单独的查询,还是有更简单的方法?我在下面包含了我的代码的 sn-p。
$query = $_GET['q'];
$sql = "SELECT * FROM articles WHERE (`title` LIKE '%".$query."%') OR (`description` LIKE '%".$query."%') OR (`tags` LIKE '%".$query."%') ORDER BY dateadded";
$query = $db->query($sql);
while($row = $query->fetch_assoc()) {
display
}
【问题讨论】:
-
标签列的存在通常表明设计不佳。
-
您可以使用 UNION 来解决您的问题
-
是的,我知道列名并不完美。我重命名了它们以使事情变得简单,以便更容易提出我的问题。