我有这个SQL查询:
SELECT
conversations_messages.conversation_id,
MAX(conversations_messages.message_date) AS 'conversation_last_reply',
MAX(conversations_messages.message_date) > conversations_users.last_view AS 'conversation_unread'
FROM
conversations_messages
LEFT JOIN conversations ON conversations_messages.message_id=conversations.id
INNER JOIN conversations_users ON conversations_messages.conversation_id=conversations_users.conversation_id
WHERE
conversations_users.user_id = $user_id AND
conversations_users.deleted=0
GROUP BY
conversations_messages.message_id
ORDER BY
'conversation_last_reply' DESC
我想要的运行良好的查询,但只有ORDER BY的最后一行不起作用,它没有按照我的要求进行排序。
唯一不起作用的是最后一行 - ORDER BY ... 我试图将其更改为ASC和DESC,但它没有响应...... *顺便说一下 - 我正在尝试排序的字段 - 是一个整数。
有人知道这是什么问题吗?
感谢。
答案 0 :(得分:4)
尝试
ORDER BY conversation_last_reply
而不是
ORDER BY 'conversation_last_reply'
您当前的版本按常量字符串排序,因此根本不排序。
答案 1 :(得分:1)
您的订单附近有报价
ORDER BY
'conversation_last_reply' DESC
----^-----------------------^------ = bad
你应该把它改成
ORDER BY
conversation_last_reply DESC
或使用反引号
ORDER BY
`conversation_last_reply` DESC
当你按字符串排序时没有排序,因为字符串的值对于每一行总是相同的:)
答案 2 :(得分:0)
您是否尝试过order by conversations_messages.message_date
?
答案 3 :(得分:0)
尝试不添加引号orderby
ORDER BY conversation_last_reply