MySQL中排序输出需要用order by。
创新互联建站专注于玉溪企业网站建设,自适应网站建设,商城网站制作。玉溪网站建设公司,为玉溪等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
如图,test表中有如下数据:
现在分别要求按ID正序和倒序输出结果。
正序:
select * from test order by id;
结果:
倒序:
select * from test order by id desc;
结果:
首先你得告诉我,你的正序条件是什么!比如说你的正序条件是name这个字段,也就是说,name字段进行正序排列,如果name字段存储的数据分别为aaa,bbb,ccc。那么按照name字段正序排列的话sql语句就是这样的:select * from xxx order by name asc
如果按照name反向排列的话就是这样的:select * from xxx order by name desc
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
具体语法参考:
以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:
from 树懒学堂 - 一站式数据知识平台
你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
你可以设定多个字段来排序。
你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
你可以添加 WHERE…LIKE 子句来设置条件。
所以,楼主所问的问题答案应该为:select ... from ... order by ID desc limit(0,5)
用mysql查询后,怎样生成名次的顺序号
SELECT 语句中的 Order By 子句,决定返回记录集合的排序方式
例如:
按照【名次】值,从小到大排序
Select * From 表名 Where ...... Order By 名次
按照【名次】值,从大到小排序
Select * From 表名 Where ...... Order By 名次 Desc
为这个问题 专门写了一个mysql function,实现的功能是,返回前几条记录。其实还可以在完善的,返回这些记录的数据的。
delimiter $$
drop function if exists top7$$
create function top7(num int(11))
returns int(11)
begin
declare totalPrice int;
declare i int;
declare countNum int;
declare tmp int;
select count(1) into countNum from mywcd;
set i=0;
set totalPrice=0;
set tmp=0;
tt:
while icountNum
do
set tmp=(select price from mywcdlimit i,1);
set i=i+1;
set totalPrice=totalPrice+tmp;
if totalPrice=num then
leave tt;
end if;
end while;
return i;
end;
$$
delimiter ;
mysql select * from mywcd;
+—-+——-+
| id | price |
+—-+——-+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
| 4 | 400 |
| 5 | 500 |
| 6 | 600 |
+—-+——-+
6 rows in set (0.00 sec)
这是我测试数据的表全部记录。
调用以及返回结果:
mysql select top7(1001);
+————+
| top7(1001) |
+————+
| 5 |
+————+
1 row in set (0.00 sec)