mysql按第一个字段排序,之后按第二个字段排序

时间:2020-04-25 11:19:28

标签: mysql sql date select sql-order-by

我有这样的查询

select YEARWEEK(v.dataorainizio,1) yw,pdv.nome ,pdv.localita
from visita v
join pdv on pdv.id=v.idpdv
order by yw DESC

结果是

"yw"    |                               "nome"|"localita"

"202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202010"|"( PDV CHIUSO ) Media World Genova Ex Saturn"|"Genova"
"202010"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202009"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202009"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"Media World Asti"|"Asti"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202007"|"Media World Bergamo 2 - Orio"|"Orio Al Serio"
"202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202007"|"Media World Asti"|"Asti"
"202006"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
"202006"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"

我想订购yw DESC,但是要像这样按顺序订购“ nome”子集

    "202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202011"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"       
    "202010"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202009"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202009"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"      
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202008"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202007"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"      
    "202006"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202006"|"( PDV CHIUSO ) Media World Brescia 2"|"Brescia"
    "202010"|"( PDV CHIUSO ) Media World Genova Ex Saturn"|"Genova"
    "202008"|"Media World Asti"|"Asti"
    "202007"|"Media World Asti"|"Asti"
    "202007"|"Media World Bergamo 2 - Orio"|"Orio Al Serio"

数据库版本MariaDB 10.4

是否有可能没有php中的存储过程和后处理结果?

1 个答案:

答案 0 :(得分:1)

这是您想要的吗?

order by nome desc, yw desc

如果您想将nome放在最yw的位置,那么,假设使用MySQL 8.0,则可以使用窗口函数:

order by
    max(yearweek(v.dataorainizio,1)) over(partition by pdv.nome) desc,
    yearweek(v.dataorainizio,1) desc