《Mysql必讀mysql分組查詢示例代碼》要點(diǎn):
本文介紹了Mysql必讀mysql分組查詢示例代碼,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
本節(jié)內(nèi)容:
mysql 分組查詢.MYSQL應(yīng)用
一、表布局
--
-- 表的布局 `client_status`
--MYSQL應(yīng)用
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應(yīng)用
--
-- 轉(zhuǎn)存表中的數(shù)據(jù) `client_status`
--MYSQL應(yīng)用
INSERT INTO `client_status` (`id`, `client_id`, `addtime`) VALUES
(3, 1,? '2012-03-26 10:32:30'),
(4, 1,? '2012-03-26 10:30:31'),
(5, 1,? '2012-03-26 10:30:32'),
(6, 2,? '2012-03-26 10:30:33'),
(7, 2,? '2012-03-26 10:30:34'),
(8, 4,? '2012-03-26 10:30:35'),
(9, 4,? '2012-03-26 10:30:36'),
(10, 3,? '2012-03-26 10:30:37'),
(11, 3,? '2012-03-26 10:30:38');MYSQL應(yīng)用
二、需求目的
按client_id分組,查詢每個(gè)client_id中離目前時(shí)間最近的記錄.MYSQL應(yīng)用
查詢結(jié)果示意,如下:
?MYSQL應(yīng)用
三、解決辦法(mysql 分組查詢實(shí)例)MYSQL應(yīng)用
例1:
SELECT * FROM (SELECT * FROM client_status ORDER BY addtime DESC )a GROUP BY client_idMYSQL應(yīng)用
explain闡發(fā)
?MYSQL應(yīng)用
例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應(yīng)用
explain闡發(fā)
?MYSQL應(yīng)用
例3:
SELECT * FROM `client_status` WHERE addtime IN (SELECT max( addtime ) FROM client_status GROUP BY client_id )MYSQL應(yīng)用
explain闡發(fā)MYSQL應(yīng)用
歡迎參與《Mysql必讀mysql分組查詢示例代碼》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/12754.html