我正在尝试在我网站上的文章上实现标签系统。我的数据库中的每个文章行都有一个 tags
列,可以保存像 php html css jquery
这样的字符串。
当查询数据库时,我只想一次只返回 10 个结果。这是我目前正在使用的:
$sql = "SELECT * FROM articles WHERE tags LIKE '%" . $tag . "%' LIMIT " . $start . ", 10";
我发现这并不准确。当限制结果时,他将抓取 $start
行后的 10 条记录,然后找到包含 $tag
的记录。
我需要他做的是首先找到标签中包含 $tag
的所有行,然后然后限制结果。
使用两个查询来完成此操作似乎非常简单,但这是否是最有效的方法?
获取从偏移量 $start
开始包含 $tag
的 10 行的最佳方法是什么?
最佳答案
一种选择是使用子查询,以便您从已过滤的结果中选择一个限制:
$sql = "SELECT * FROM ( SELECT * FROM articles WHERE tags LIKE '%" . $tag . "%' ) LIMIT " . $start . ", 10";
关于php - SELECT 行 LIKE 标记和带有偏移量的 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558919/