Php MYSQL从表中选择,获取表中最新/最后10行
最好、最简单的方法是什么?我目前的查询是:Php MYSQL从表中选择,获取表中最新/最后10行,php,mysql,sql,sql-order-by,Php,Mysql,Sql,Sql Order By,最好、最简单的方法是什么?我目前的查询是: SELECT * FROM chat WHERE (userID = $session AND toID = $friendID) OR (userID = $friendID AND toID = $session) ORDER BY id LIMIT 10 但这显示了前10行,而不是最后10行 编辑:我希望最后10行(是的,DESC会这样做),但我希望它们以升序返回。要颠倒顺序(因此获取最后10行而不
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id
LIMIT 10
但这显示了前10行,而不是最后10行
编辑:我希望最后10行(是的,DESC会这样做),但我希望它们以升序返回。要颠倒顺序(因此获取最后10行而不是前10行),请使用DESC
而不是ASC
编辑
根据您的评论:
SELECT * FROM (
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id DESC
LIMIT 10
) AS `table` ORDER by id ASC
如果您想要最后10个,只需将ASC更改为DESC
SELECT *
FROM
chat
WHERE
(userID=$session AND toID=$friendID)
OR
(userID=$friendID AND toID=$session)
ORDER BY id
DESC
LIMIT 10
首先,我设定了限制
$limit = 10;
然后
$total_rows = mysqli_num_rows($resource);
在这里,我计算了受影响的行的总数
$start = $total_rows-$limit;
然后从行数中减去限制以获取起始记录数
$query_limit= $query." LIMIT $start,$limit";
然后将限制添加到查询中。
有关限制的更多信息,请参阅此链接
首先从表中选择最后10个,然后按升序重新排序
SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 10) sub ORDER BY id ASC
哎呀,我忘了在我的问题中包括最后10行(这是可以用DESC完成的,但按ASC顺序。我忘了在我的问题中包括最后10行(是用DESC),但按ASC顺序。我知道这是一篇老文章,但这正是我要找的。谢谢:)在数据库上使用排序选项。没有解释的代码转储很少有帮助。请为您的答案添加一些上下文。如果您有筛选器,这可能是一个问题。有些数据可能被忽略。@Chris还好吗。。。?我对这个问题没有多加解释answer@mohitesachin217,您添加了一些解释,但您在回答中使用了古老的
mysql.*
函数。如果您正在编写新代码,请不要使用mysql.*
函数。它们是旧的、破损的,在PHP5.5中被弃用(它太旧了,甚至不再接收安全更新),在PHP7中被完全删除。使用或与准备好的语句和参数绑定一起使用。有关详细信息,请参阅。
SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 10) sub ORDER BY id ASC