Php 如何选择mysql中的最后一行
我创建了一个至少包含100行的表。当我想要检索一个元素时,我执行下面的代码。这将返回id介于11和28之间的项目。我的目标是能够回应最后28项。如何在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 | |
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