テーブルから 1 行おきにのみ取得する方法を知りたいです。
私は試した :
SELECT * FROM table_name ORDER BY id DESC LIMIT 1, 1
もちろん、2、4、6ではなく、2行目のみを取得します...
それを行う解決策はありますか?
よろしくお願いいたします。
使用できるユーザー変数に関する卑劣なトリックがあります。
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
ます。
よりシンプルなバージョン
SELECT * FROM table_name WHERE MOD(id,2) = 0 ORDER BY id DESC
奇数の場合は 0 を 1 に変更します