mysql不同版本下groupby组内排序的差异最近发现⽹上的 group by 组内排序语句在不同的mysql版本中结果不⼀样。
建表语句:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for wp_posts
-- ----------------------------
DROP TABLE IF EXISTS `wp_posts`;
CREATE TABLE `wp_posts` (
`id` int(11) DEFAULT NULL,
`title` varchar(6) DEFAULT NULL,
`post_date` datetime DEFAULT NULL,
`post_author` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of wp_posts
-- ----------------------------
INSERT INTO `wp_posts` VALUES ('1', 'Title1', '2013-01-01 00:00:00', 'Jim');
INSERT INTO `wp_posts` VALUES ('2', 'Title2', '2013-02-01 00:00:00', 'Jim');
INSERT INTO `wp_posts` VALUES ('3', 'Title3', '2016-04-22 11:27:37', 'Jim');
我在⽹上查到group by 组内排序的基本做法是这样的:
⽅法1:
SELECT wp_posts.* FROM
(
SELECT *
FROM wp_posts
ORDER BY wp_posts.post_date DESC
) AS wp_posts
GROUP BY wp_posts.post_author
这种⽅法在mysql版本5.6.26是没问题的:
vbs病毒专杀正确的搜出了最⼤的时间Title3:
在mysql版本5.7.11-log是有问题的:
四种resource
搜出了最⼩的时间Title1:
这种排序⽅法在不同的mysql版本可能结果不⼀样,那有⽊有更好的⽅法呢?我在
到了答案。
js怎样读取json里面的数据⽅法2:
SELECT p1.*
FROM wp_posts p1
INNER JOIN
(
SELECT max(post_date) MaxPostDate, post_author
FROM wp_posts
GROUP BY post_author
) p2
ON p1.post_author = p2.post_author
AND p1.post_date = p2.MaxPostDate
mockplus网页版
order by p1.post_date desc
⽤这种⽅法排序,以上2种mysql版本都可以⽤:版本5.6.26:
版本5.7.11-log:
搜索结果⼀样,吼吼。
总结⼀下:
group by 组内排序
⽅法1:
SELECT wp_posts.* FROM
(
SELECT *
FROM wp_posts
mysql语句顺序ORDER BY wp_posts.post_date DESC ) AS wp_posts
美国监听事件
GROUP BY wp_posts.post_author
在不同的mysql版本中结果可能不⼀样;⽅法2:
SELECT p1.*

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。