作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想按两列对产品表进行排序:prod_price
和prod_name
.
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;
这里的排序是如何进行的?我认为这首先发生在prod_price
然后通过prod_name
。另外,上面的查询与这个查询有何不同:
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_name;
我的产品表如下:
CREATE TABLE Products
(
prod_id char(10) NOT NULL ,
vend_id char(10) NOT NULL ,
prod_name char(255) NOT NULL ,
prod_price decimal(8,2) NOT NULL ,
prod_desc text NULL
);
最佳答案
按 ORDER BY
排序由第一列完成,然后由指定语句中的每个附加列完成。
例如,考虑以下数据:
Column1 Column2
======= =======
1 Smith
2 Jones
1 Anderson
3 Andrews
查询
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2
首先会按 Column1
中的所有值进行排序
然后按 Column2
对列进行排序产生这个:
Column1 Column2
======= =======
1 Anderson
1 Smith
2 Jones
3 Andrews
也就是说,数据首先排序在Column1
中顺序,然后每个子集(以 Column1
作为值的 1
行)按第二列的顺序排序。
您发布的两个语句之间的区别在于第一个语句中的行将首先按 prod_price
排序。 (价格顺序,从最低到最高),然后按名称顺序(这意味着如果两个项目具有相同的价格,则名称的 alpha 值较低的项目将首先列出),而第二个项目将按名称顺序排序仅(意味着价格将根据 prod_name
按顺序显示,而不考虑价格)。
关于mysql - SQL ORDER BY 多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708831/
我是一名优秀的程序员,十分优秀!