下面是从网上找到的方案:
获取数据库最后若干条记录是很常见的用法,下面分别用几种方法去实现,当作SQL的练习吧。
一种方法是数据库记录倒序排序,然后用limit 10子句获取10条:
1, 逆序:
mysql> SELECT title AS TITLE FROM news ORDER BY id DESC LIMIT 10;
2,正序:
也可以取得最大记录的id,然后在WHERE子句减去10。
mysql> SELECT temp.title as 标题 FROM news AS temp WHERE news_id > (SELECT MAX(id) FROM news) – 10;
3,正序:
下面也是用一样的方法,不过使用的是 count() 函数:
mysql> SELECT temp.title as 标题, temp.id as ID FROM news AS temp WHERE id > (SELECT count(temp.id) FROM news) – 10;
本人的实际方案:
select * from table order by id desc limit 10; –按照ID 逆序排列,选取前10个,但是这10个数据的顺序是逆序,怎么样实现正常顺序的最后10组数据呢?
本人该怎么样按照网上搜到的方法2或3来执行呢? 看不懂方法2 中的news–>news_id 是啥意思?请高手指点!
获取数据库最后若干条记录是很常见的用法,下面分别用几种方法去实现,当作SQL的练习吧。
一种方法是数据库记录倒序排序,然后用limit 10子句获取10条:
1, 逆序:
mysql> SELECT title AS TITLE FROM news ORDER BY id DESC LIMIT 10;
2,正序:
也可以取得最大记录的id,然后在WHERE子句减去10。
mysql> SELECT temp.title as 标题 FROM news AS temp WHERE news_id > (SELECT MAX(id) FROM news) – 10;
3,正序:
下面也是用一样的方法,不过使用的是 count() 函数:
mysql> SELECT temp.title as 标题, temp.id as ID FROM news AS temp WHERE id > (SELECT count(temp.id) FROM news) – 10;
本人的实际方案:
select * from table order by id desc limit 10; –按照ID 逆序排列,选取前10个,但是这10个数据的顺序是逆序,怎么样实现正常顺序的最后10组数据呢?
本人该怎么样按照网上搜到的方法2或3来执行呢? 看不懂方法2 中的news–>news_id 是啥意思?请高手指点!
解决方案
5
把desc去掉
35
本人服了。
select * from (select * from table order by id desc limit 10) a order by id;
select * from (select * from table order by id desc limit 10) a order by id;