MySQL 5.7+不支持子查询排序的解决办法

在MySQL 5.7版本后已经不支持子查询排序了,那么怎么办呢

答案就是 => 想法设法换个写法呗

举个栗子

以下代码在5.6 可用 :

SELECT * FROM (SELECT * FROM message ORDER BY id DESC) tt GROUP BY conversation_id ;

在5.7中,不允许在子查询中使用order by,那么怎么办呢?很简单,先用max或min代替排序,然后用一个in解决

SELECT * FROM  message   WHERE id IN (SELECT max(id) FROM message GROUP BY conversation_id);

破费 🙂