我想從MySQL中的表中選擇所有偶數或奇數行而不使用ID字段。 我試過這個,但我認爲它不工作,因爲它基於SQL Server: how to show only even or odd rows in sql server 2008?在MySQL中只選擇偶數/奇數行
謝謝大家提前。
我想從MySQL中的表中選擇所有偶數或奇數行而不使用ID字段。 我試過這個,但我認爲它不工作,因爲它基於SQL Server: how to show only even or odd rows in sql server 2008?在MySQL中只選擇偶數/奇數行
謝謝大家提前。
假設你有一個指定表的排序列,那麼你可以使用變量做你想要什麼:
select t.*
from (select t.*, (@rn := @rn + 1) as seqnum
from table t cross join
(select @rn := 0) vars
order by col
) t
where mod(seqnum, 2) = 0;
它的工作原理,謝謝!如果我要求你解釋它,我是否問得太多?我不明白「@rn」和「VARS」的含義。 – AleVale94 2014-09-23 11:44:31
'vars'是一個表別名,'@ rn'是MySQL中的一個變量。你可以在這裏閱讀有關變量:http://dev.mysql.com/doc/refman/5.7/en/user-variables.html。 – 2014-09-23 13:39:00
嘗試使用此: -
SELECT cols
FROM (
SELECT cols, @rowNumber := @rowNumber+ 1 rn
FROM YourTable
JOIN (SELECT @rowNumber:= 0) r
) t
WHERE rn % 2 = 1;
我可以不要留下評論做我的聲譽,所以我會發布代替:
同樣的問題已經被問到這裏和解決方案已經發布。
select every other row in MySQL without depending on any ID?
有沒有這樣的事,作爲一個「偶」或「奇」在MySQL行。表格表示無序集合。您需要一個指定行的排序的列。 – 2014-09-23 11:30:36
如果您有ID的順序,您可以檢索ID%2 == 0 – Tushar 2014-09-23 11:31:47
[http://stackoverflow.com/questions/15578727/select-every-second-row-mysql-without-auto-increment-or-data表] – Anptk 2014-09-23 11:40:21