2

少なくとも 100 行を含むテーブルを作成しました。要素を取得する場合は、次のコードを実行します。これにより、ID が 11 から 28 のアイテムが返されます。私の目標は、最後のアイテムである 28 をエコーできるようにすることです。mysql でこれを達成するにはどうすればよいですか?

SELECT names
FROM item_list
WHERE id >= 10 
LIMIT 18
4

3 に答える 3

7

元のクエリは、実際には行 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です。

于 2013-06-04T14:30:32.573 に答える
2

これが本当にやりたいことかどうかによって異なりますが、これらのオプションは近いかもしれません:

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% 明確ではありません。

于 2013-06-04T14:32:11.863 に答える