最好、最简单的方法是什么?我的查询目前是:
SELECT *
FROM chat
WHERE (userID = $session AND toID = $friendID)
OR (userID = $friendID AND toID = $session)
ORDER BY id
LIMIT 10
这显示了前10行,而不是最后10行。
编辑:我想要最后10行(是的,DESC可以做到这一点),但我希望它们以升序返回。
最好、最简单的方法是什么?我的查询目前是:
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
SELECT *
FROM
chat
WHERE
(userID=$session AND toID=$friendID)
OR
(userID=$friendID AND toID=$session)
ORDER BY id
DESC
LIMIT 10
首先从表中选择最后10个,然后按升序重新排序。
SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 10) sub ORDER BY id ASC
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$limit = 10;
$query = "SELECT * FROM $table";
$resource = mysqli_query($con,$query);
$total_rows = mysqli_num_rows($resource);
$start = $total_rows-$limit;
$query_limit= $query." LIMIT $start,$limit";
首先我已经设置了限制
$limit = 10;
然后
$total_rows = mysqli_num_rows($resource);
在这里,我已经获取了受影响的总行数。
$start = $total_rows-$limit;
然后从行数中减去限制,以获取起始记录编号
$query_limit= $query." LIMIT $start,$limit";
然后将查询添加了限制。 有关限制的更多信息,请参见此链接 https://www.w3schools.com/php/php_mysql_select_limit.asp