Php 如何选择mysql中的最后一行

Php 如何选择mysql中的最后一行,php,mysql,Php,Mysql,我创建了一个至少包含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 | |

我创建了一个至少包含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 | 或者只是

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
换句话说,限制行数等于限制0,行数


这取决于您是否真的想这样做,但这些选项可能很接近:

SELECT names FROM item_list WHERE id = 28
或者

一个比前一个更干净,但更长,用于娱乐:

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

您可以在mysql中使用order by和limit

从表中选择*按id描述名称顺序限制0,1


这里id是自动增量值。

我想回显页面上的最后一项。您是否尝试了限制17,1?这解决了我的问题^。事实上,它是靠运气,而不是设计。它返回的是最后一个结果,即100I。正如您所建议的,我确实从项目列表中选择了名称,其中id>=10 ORDER BY id DESC LIMIT 1。它仍然给我最后一个结果,是100而不是28。这很奇怪,因为演示按预期工作。请告诉我们演示有什么问题,或者编辑您的问题以显示您真正想要的内容。这给了我一个错误,每个派生表都必须有自己的别名。这里唯一缺少的是在子查询上不提供别名:我将更新此问题。由于子查询不保证返回记录的顺序,是否也需要对其进行排序?哎呀!这就是我没有测试我的答案所得到的。谢谢@JW웃@是的,那也是。固定的
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