Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 根据一个条件对表进行排序,并相应地列出剩余的行_Mysql_Sql_Select_Sql Order By - Fatal编程技术网

Mysql 根据一个条件对表进行排序,并相应地列出剩余的行

Mysql 根据一个条件对表进行排序,并相应地列出剩余的行,mysql,sql,select,sql-order-by,Mysql,Sql,Select,Sql Order By,我有一张有以下细节的桌子 cID sID Name pID childrenCount 1 1 Site 1 5 2 1 Safty 2 4 3 1 Archit 3 3 4 1 Civil 1 0 5 1 Concs 1 0 6 1 Pavm 1 0 7 1 Paint 3 0 8 1 Alum 3 0 9 1

我有一张有以下细节的桌子

cID sID Name    pID childrenCount
1   1   Site    1   5    
2   1   Safty   2   4    
3   1   Archit  3   3  
4   1   Civil   1   0  
5   1   Concs   1   0  
6   1   Pavm    1   0  
7   1   Paint   3   0  
8   1   Alum    3   0  
9   1   Doors   3   0  
10  1   Highw   1   0  
11  1   Road    1   0  
12  1   Alarm   2   0  
13  1   Safty   2   0  
14  1   Fence   2   0  
15  1   Beaco   2   0  
我想要的是编写一个select查询,首先按照它们的childrenCount值降序排列上面的表,并按照下面的顺序列出相应的行

cID sID Name    pid childrenCount
1   1   Site    1   5  
4   1   Civil   1   0  
5   1   Conc    1   0  
6   1   Pavm    1   0  
10  1   Highw   1   0  
11  1   Road    1   0  
2   1   Safty   2   4  
12  1   Alarm   2   0   
13  1   Safty   2   0  
14  1   Fence   2   0  
15  1   Beacon  2   0  
3   1   A WRK   3   3  
7   1   Paint   3   0  
8   1   Alumin  3   0  
9   1   Doors   3   0   

提前感谢您

试试这个……先按
pid
下单,然后按childrenCount说明下单

SELECT * FROM TABLENAME order by pid, childrenCount desc
试试这个:

SELECT * FROM tableA ORDER BY pid, childrenCount DESC, cid

您的意思是类似于“按子项顺序计数说明”?不简单地按子项顺序计数,而是第一个条目是子项计数最高的行,然后列出所有子项,即与第一个条目对应的pid…主要考虑子项计数和pid字段您可以按顺序列出任意数量的列,这些列的顺序将是排序的顺序,但我需要一个稍微不同的答案,即假设如果cid=2有childrenCount 10,那么它也将保持在相同的位置,使用上面的查询。目前的工作方法是先通过pid进行排序,然后首先显示最高的子计数。但实际上,我需要的是将最高的childrncount显示为第一行,然后显示其对应的子项(pid与最高的childrencount相同的所有其他条目,以此类推)