gpt4 book ai didi

mysql - SQL ORDER BY 多列

转载 作者:行者123 更新时间:2023-11-29 18:45:07 25 4
gpt4 key购买 nike

我想按两列对产品表进行排序:prod_priceprod_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com