所以,我的代码看起来像这个
mysql_query("SELECT * FROM threads WHERE forum_id = '$id' ORDER BY type,posted DESC") or
die(mysql_error());
"posted"是时间()的值,选择"reduced"将最新的一个放在顶部。"type"包含1或2。如果是2,则螺纹被固定。目前,它在发布后进行排序,但那些应该在顶部(固定)的在底部。我缺了什么补丁吗?
尝试:ORDER BY type DESC, posted DESC
默认情况下,它按升序排序。您需要为您想要订购的两个字段指定订单。
按文档订购
不要忘记order by中的asc/desc适用于每个单独的字段,而不是整个order by子句。
ORDER BY type DESC, posted ASC
MySQL也可以接受任意的排序逻辑,因此对于更复杂的排序要求,您可以使用类似的东西
ORDER BY IF(type=2, 0, 1) AS pinned ASC, posted DESC
只要任意逻辑返回一些琐碎可排序的东西(例如数字或字符串),排序的复杂程度就没有限制。