首页 文章

多个升序在Mysql中不起作用

提问于
浏览
0

我有一个名为 request 的表,有三个列称为 Id, want, teach . 我必须按升序显示 wantteach 列,我不想显示NULL和空行 .

我尝试查询只有 want 列按升序显示,但 teach 列未按升序显示 .

SELECT want, teach FROM request WHERE want IS NOT NULL OR want !='' AND teach IS NOT NULL OR teach !='' GROUP BY want, teach ORDER BY want ASC, teach ASC

如果我写ORDER BY教ASC,想要ASC然后教学列以升序显示并想要显示DESC命令 . 你能帮帮我吗?

Chech左侧列是想要和右侧列教 . 我得到这样的输出 . 左侧列是ASC订单但右侧显示DESC
enter image description here

2 回答

  • 0

    首先,您需要了解订单

    如果你给第1个,第2个asc命令它会在第1列中排出并依赖于它将asc第2列 . 例如

    1st  2nd               
    1    b
    2    d
    3    a
    2    a
    1    a
    

    通过转换来订购

    1st   2nd 
      1     a
      1     b
      2     a
      2     d
      3     a
    

    所以你需要不同的查询

    SELECT want FROM request WHERE want IS NOT NULL OR want !='' GROUP BY 
     want ORDER BY want ASC
    
         SELECT teach FROM request WHERE teach IS NOT NULL OR teach !='' GROUP
     BY  teach ORDER BY teach ASC
    
  • 0

    你在这里没有得到多重订单的意义 .

    首先,默认情况下,大多数dbms排序为 ASC .

    多次排序取决于排序列的顺序,这意味着 - 或者说 - : -

    " hey sql ! select some result from my table , order them by col1 and group them by this order , then this sorted or grouped data set , sort them by col2. "

    可以这么说,这是多维排序 .

    以此为例:

    +------+---------+-------+                   +------+---------+-------+
    |  id  |   want  | teach |                   |  id  |   want  | teach |
    +------+---------+-------+                   +------+---------+-------+
    |   1  |    1    |   2   |    ORDER BY       |   2  |    1    |   1   |
    |   2  |    1    |   1   |       want asc,   |   1  |    1    |   2   |
    |   3  |    2    |   1   |       teach asc   |   4  |    1    |   2   |
    |   4  |    1    |   2   |                   |   3  |    2    |   1   |
    +------+---------+-------+                   +------+---------+-------+
    

    当你恢复排序列的顺序时,如下所示:

    +------+---------+-------+                   +------+---------+-------+
    |  id  |   want  | teach |                   |  id  |   want  | teach |
    +------+---------+-------+                   +------+---------+-------+
    |   1  |    1    |   2   |    ORDER BY       |   2  |    1    |   1   |
    |   2  |    1    |   1   |       teach asc,  |   3  |    2    |   1   |
    |   3  |    2    |   1   |       want asc    |   1  |    1    |   2   |
    |   4  |    1    |   2   |                   |   4  |    1    |   2   |
    +------+---------+-------+                   +------+---------+-------+
    

相关问题