少なくとも 100 行を含むテーブルを作成しました。要素を取得する場合は、次のコードを実行します。これにより、ID が 11 から 28 のアイテムが返されます。私の目標は、最後のアイテムである 28 をエコーできるようにすることです。mysql でこれを達成するにはどうすればよいですか?
SELECT names
FROM item_list
WHERE id >= 10
LIMIT 18
元のクエリは、実際には行 10 から 27 を返します。
| | ID | ------ | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | | | 26 | | | 27 |
28行目を取得するには、次を使用できます
WHERE id >= 10
LIMIT 18, 1
あるいは単に
LIMIT 27, 1
この
LIMIT
句を使用して、SELECT
ステートメントによって返される行数を制限できます。SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 SELECT * FROM tbl LIMIT 95,18446744073709551615; # Retrieves rows from the 96th row to the last
つまり、
LIMIT row_count
と同等LIMIT 0, row_count
です。
これが本当にやりたいことかどうかによって異なりますが、これらのオプションは近いかもしれません:
SELECT names FROM item_list WHERE id = 28
また...
SELECT names FROM item_list WHERE id <= 28 ORDER BY id DESC LIMIT 1
あるいは...
SELECT * FROM ( SELECT names FROM item_list WHERE id >= 10 LIMIT 18 ORDER BY id DESC ) LIMIT 1
楽しみのためにもう1つ(前のものよりきれいですが、長くなります):
SELECT names
FROM (
SELECT id, names
FROM item_list
WHERE id >= 10
ORDER BY id
LIMIT 18 ) subQ
ORDER BY id DESC
LIMIT 1
リストが変更されたときに、/実際に/取得したいものは 100% 明確ではありません。