mysql rownum 的另外一種實現方法,連續號碼段查詢

--
-- 表的結構 `t`
--

CREATE TABLE `t` (
  `a` int(11) NOT NULL,
  `m` int(11) NOT NULL,
  PRIMARY KEY  (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- 導出表中的數據 `t`
--

INSERT INTO `t` VALUES (0, 1);
INSERT INTO `t` VALUES (1, 1);
INSERT INTO `t` VALUES (2, 1);
INSERT INTO `t` VALUES (10, 2);
INSERT INTO `t` VALUES (11, 2);
INSERT INTO `t` VALUES (12, 2);
INSERT INTO `t` VALUES (100, 1);

 

 

 

SELECTmin(a ) , max( a ) , m
FROM (


SELECT a, m, rn, a - rn AS diff
FROM (

SELECT a, m, @a := @a +1rn
FROM t, (

SELECT @a :=0
) AS a
) AS b

) AS c
GROUP BY c.m,diff

 

 

 

 

SELECT min( id ) , max( id ) , user_id
FROM (


SELECT id, user_id, rn, id - rn AS diff
FROM (

SELECT id, user_id, @a := @a +1rn
FROM ecm_2dcode AS code, (

SELECT @a :=0
) AS a
ORDER BY code.user_id, code.id
) AS b

) AS c
GROUP BY c.user_id, diff
LIMIT 0 , 100;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章