SQL中Order By的意义和用法

 我来答
世纪网络17
2022-06-01 · TA获得超过5950个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部

以下内容参考 w3school 中关于SQL的教学,可以点击蓝字参考原文。

ORDER BY 语句用于 根据指定的列 结果集 进行 排序

ORDER BY 语句 默认 按照 升序 对记录进行排序。

如果您希望按照 降序 对记录进行排序,可以使用 DESC 关键字。

注:对字符串排序的时候会按 首字符 ASCII值 排列,如果首字符相同,则向后看一位。

原始的表 (用在例子中的):
Orders 表:

实例 1
以字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company

实例2
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
结果:

看此结果和上一结果不同之处在于,Company值相同的行,排序按照OrederNumber的升序排列。

实例 3
以逆字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
结果:

实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
结果:

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

问题描述
Mysql排序时如果用的字段为字符型,排序出来时这样的:
1,10,2,20,3,4,5
这种排序是按照字符从第一个字符开始比较出来的,但不是我们想要的,我们想要的是:
1,2,3,4,5……,10,20

解决方案
排序时,把相应的字段转换成整型,使用CAST函数,如下:
CAST(seat_row AS UNSIGNED)
将seat_row列转换为UNSIGNED的数值类型。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式