<分区>
http://www.vidyasocks.com/requests.php
我想要它,这样当我在一个主题中发帖时,它就会将该主题推到顶部。
这是我当前页面的内容"SELECT * from forum ORDER BY id DESC LIMIT 12";
数据库有一个带有 id(pk) 的线程,并用一个 id(pk) 和一个 thread_id(fk) 回复
我该怎么办?我假设某种内部连接?
<分区>
http://www.vidyasocks.com/requests.php
我想要它,这样当我在一个主题中发帖时,它就会将该主题推到顶部。
这是我当前页面的内容"SELECT * from forum ORDER BY id DESC LIMIT 12";
数据库有一个带有 id(pk) 的线程,并用一个 id(pk) 和一个 thread_id(fk) 回复
我该怎么办?我假设某种内部连接?
最佳答案
您是否有插入话题和回复的日期/时间戳?您不能只根据回复 ID 进行排序,因为有些线程没有任何回复,并且不可能将 thread_id 顺序与回复 ID 顺序相关联。
如果我对你的表结构有正确的想法,你会在给定一些时间戳的情况下做这样的事情:
SELECT DISTINCT forum.* FROM forum
LEFT JOIN replies on
forum.id = replies.thread_id
ORDER BY coalesce(replies.reply_timestamp, forum.thread_timestamp) DESC
LIMIT 12
如果存在回复,合并将返回 replies.reply_timestamp,否则将使用 forum.thread_timestamp。
编辑:根据 Ami 的评论添加了 DISTINCT
关于mysql - 如何根据上次用户帖子将线程放在顶部(凹凸)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458976/
相关文章:
php - zend 框架重定向问题 : Invalid controller specified
PHP/MySQL : time isn't matching properly with current time
mysql - 创建表时如何禁用 DEFAULT 和 ON UPDATE
php - MySQL : Order by and Group By combining not giving the latest record
java - 要计算 Oracle DB 中股票数据价格列表的移动平均值 - 使用 SQL 还是 Java 更快?
mysql - 添加论坛 : sharing a database or creating a new one?