每个关键字SQL 10条记录

时间:2014-12-13 14:00:54

标签: php mysql sql

我试图制作相关的搜索系统

所以..第一次显示具有完全匹配标题的帖子

SELECT * FROM `posts` WHERE `title` LIKE '%keyword match%' LIMIT 50
如果每个关键字可以显示10条记录,那么

以及我想要的是什么

SELECT * FROM `posts` WHERE `title` LIKE '%keyword%' OR `title` LIKE '%match%' LIMIT 10

但每个关键字有10条记录

由于

3 个答案:

答案 0 :(得分:2)

您可以使用UNION

SELECT * FROM `posts` WHERE `title` LIKE '%keyword%' LIMIT 10
UNION
SELECT * FROM `posts` WHERE `title` LIKE '%match%' LIMIT 10

答案 1 :(得分:1)

这是一项挑战,因为有些帖子可能符合这两个条件。实际上,除非您特别避免,否则您的前50个可能会作为其他关键字的匹配项返回。

这可能会做你想要的:

SELECT * FROM `posts` WHERE `title` LIKE '%keyword match%' LIMIT 0, 50
UNION ALL
SELECT * FROM `posts` WHERE title like '%keyword%' and title not like '%match%' limit 0, 10
UNION ALL
SELECT * FROM `posts` WHERE title not like '%keyword%' and title like '%match%' limit 0, 10

答案 2 :(得分:0)

SELECT * FROM `posts` WHERE `title` LIKE '%keyword match%' LIMIT 0,10
SELECT * FROM `posts` WHERE `title` LIKE '%keyword%' OR `title` LIKE '%match%' LIMIT 0,10