2

テーブルから 1 行おきにのみ取得する方法を知りたいです。

私は試した :

SELECT * FROM table_name ORDER BY id DESC LIMIT 1, 1

もちろん、2、4、6ではなく、2行目のみを取得します...

それを行う解決策はありますか?

よろしくお願いいたします。

4

2 に答える 2

5

使用できるユーザー変数に関する卑劣なトリックがあります。

SELECT * FROM table_name, (SELECT @c := 0) t 
WHERE (@c := @c + 1) % 2 = 0
ORDER BY id DESC;

これは (句@c内の) 行ごとに計算され、mod演算子を使用して偶数レコード (2、4、6、...)のみを選択しているため機能します。WHERE%

奇数レコード (1、3、5、...)が必要な場合は、それを に変更...% 2 = 0...% 2 = 1ます。

于 2013-09-10T16:22:51.833 に答える
0

よりシンプルなバージョン

SELECT * FROM table_name WHERE MOD(id,2) = 0 ORDER BY id DESC

SQLフィドル

奇数の場合は 0 を 1 に変更します

于 2013-09-10T16:55:44.907 に答える