select every other row in MySQL without depending on any ID?

后端 未结 5 965
独厮守ぢ
独厮守ぢ 2020-12-18 07:36

Considering following table that doesn\'t have any primary key, can I select every other row?

col1      col2
 2         a
 1         b
 3         c
 12               


        
5条回答
  •  一向
    一向 (楼主)
    2020-12-18 08:25

    Try this. I've adapted it from the answer linked below. I tested it on SQLFiddle and it appears to work.

    http://sqlfiddle.com/#!2/0bccf/28
    http://sqlfiddle.com/#!2/0bccf/29

    Odd Rows:

    SELECT x.*
    FROM (
         SELECT @rownum:=@rownum+1 rownum, t.*
         FROM (SELECT @rownum:=0) r, table t
    ) x
    WHERE MOD(x.rownum, 2) = 1
    

    Even Rows:

    SELECT x.*
    FROM (
         SELECT @rownum:=@rownum+1 rownum, t.*
         FROM (SELECT @rownum:=0) r, table t
    ) x
    WHERE MOD(x.rownum, 2) = 0
    

    Adapted from: MySQL row number

提交回复
热议问题