《Mysql必读mysql分组查询示例代码》要点: 本文介绍了Mysql必读mysql分组查询示例代码,希望对您有用。如果有疑问,可以联系我们。
导读:本节内容:mysql 分组查询.一、表布局---- 表的布局 `client_status`--CREATE TABLE IF NOT EXISTS `client_status` ( `id` me...
本节内容: mysql 分组查询.MYSQL应用
一、表布局 -- -- 表的布局 `client_status` --MYSQL应用
CREATE TABLE IF NOT EXISTS `client_status` ( ? `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, ? `client_id` mediumint(8) unsigned NOT NULL, ? `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, ? PRIMARY KEY (`id`), )MYSQL应用
-- -- 转存表中的数据 `client_status` --MYSQL应用
INSERT INTO `client_status` (`id`,`client_id`,`addtime`) VALUES (3,1,? '2012-03-26 10:32:30'), (4,? '2012-03-26 10:30:31'), (5,? '2012-03-26 10:30:32'), (6,2,? '2012-03-26 10:30:33'), (7,? '2012-03-26 10:30:34'), (8,4,? '2012-03-26 10:30:35'), (9,? '2012-03-26 10:30:36'), (10,3,? '2012-03-26 10:30:37'), (11,? '2012-03-26 10:30:38');MYSQL应用
二、需求目的 按client_id分组,查询每个client_id中离目前时间最近的记录.MYSQL应用
查询结果示意,如下: ?MYSQL应用

三、解决办法(mysql 分组查询实例)MYSQL应用
例1: SELECT * FROM (SELECT * FROM client_status ORDER BY addtime DESC )a GROUP BY client_idMYSQL应用
explain阐发 ?MYSQL应用

例2: SELECT * FROM client_status a WHERE NOT EXISTS (SELECT 1 FROM client_status WHERE a.client_id = client_id AND a.addtime < addtime)MYSQL应用
explain阐发 ?MYSQL应用

例3: SELECT * FROM `client_status` WHERE addtime IN (SELECT max( addtime ) FROM client_status GROUP BY client_id )MYSQL应用
explain阐发
 MYSQL应用欢迎参与《Mysql必读mysql分组查询示例代码》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|