如何选择mysql中的最后一行

时间:2013-06-04 14:29:11

标签: php mysql

我创建了一个至少包含100行的表。当我想要检索元素时,我在下面执行以下代码。这将返回id介于11和28之间的项目。我的目标是能够回显最后一项是28。如何在mysql上实现这一点?

SELECT names
FROM item_list
WHERE id >= 10 
LIMIT 18

3 个答案:

答案 0 :(得分: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

See a demo

或者只是

LIMIT 27, 1

See a demo

  

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

答案 1 :(得分: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

为了好玩,还有一个(比以前更干净,但更长),

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%清晰 - 但希望这些示例能够引导您找到正确的文档部分!

答案 2 :(得分:0)

你可以在mysql中使用order by limit。

通过id desc limit 0,1

从table_name顺序中选择*

此处id是自动增量值。