gpt4 book ai didi

php - 如何从我的 mysql 中选择 5 个最新行

转载 作者:可可西里 更新时间:2023-11-01 07:49:15 26 4
gpt4 key购买 nike

我想知道从我的表中检索 5 个最新行的 sql 命令?下面是我的 sql 查询。我该怎么做,才能选择 第 5 行的最新行 进行处理?

$query = 
"SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS
datetime FROM markers1 WHERE 1";

最佳答案

您需要对结果进行排序,并设置一个限制。

假设 datetime 是您想要订购的时间:

$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";

编辑:要回答 OP 的评论:“我得到的结果是第 50 行的第一个查询开始,然后是 49、48、47、46 是否有可能我可以从第 46、47、48、49、50 行开始?”

您可以使用 PHP 中的结果执行此操作,方法是获取行并将它们存储在数组中,然后反转数组。 我不相信您可以有效地反向循环遍历 mysql 结果资源。

要在 SQL 查询中执行此操作,您需要使用原始查询创建一个临时表:

$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM (
SELECT
lat,
lng,
datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
) AS tmp_markers
ORDER BY datetime ASC
";

初始查询的结果用作在新查询中搜索的表,该查询按日期时间升序排序。我必须在外部查询上应用 DATE_FORMAT,因为我们需要日期时间字段再次排序。

关于php - 如何从我的 mysql 中选择 5 个最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com