我有2个表格主题和帖子,我想搜索我的帖子,并按大多数匹配的线程顺序。MYSQL,ORDER BY LIKE
现在,我有这样的:
SELECT Threads.*
FROM Posts
INNER JOIN Threads ON Posts.ThreadID=Threads.ThreadID
WHERE Posts.Content LIKE '%" . $search . "%'
OR Posts.User LIKE '%" . $search ."%'
我有2个表格主题和帖子,我想搜索我的帖子,并按大多数匹配的线程顺序。MYSQL,ORDER BY LIKE
现在,我有这样的:
SELECT Threads.*
FROM Posts
INNER JOIN Threads ON Posts.ThreadID=Threads.ThreadID
WHERE Posts.Content LIKE '%" . $search . "%'
OR Posts.User LIKE '%" . $search ."%'
你可以添加一个连接来计算每个线程的职位数目。由于您没有从帖子中选择任何栏目,这是您需要的唯一连接。
select t.*
from Threads t
join (
select ThreadID
, count(*) as PostCount
from Posts
where p.Content LIKE '%" . $search . "%'
or p.User LIKE '%" . $search ."%'
group by
ThreadID
) PostCount
on PostCount.ThreadID = t.ThreadID
order by
PostCount.PostCount desc
你忘了问一个问题:) – 2012-02-19 21:17:34
我相信问题是在主题行中:你将如何使用LIKE添加一个ORDER BY? – DOK 2012-02-19 21:19:19
@JoachimIsaksson:问题是在第一行,“我想搜索我的帖子,并按大多数匹配的线程排序” – Andomar 2012-02-19 21:22:22