Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Database - Fatal编程技术网

Mysql 按子项和名称选择语句顺序

Mysql 按子项和名称选择语句顺序,mysql,sql,database,Mysql,Sql,Database,这就是我需要的结果 这就是我得到的结果 这是我的问题 select a.id, a.name, a.parent from categ a left join categ b on a.parent=b.id order by coalesce(b.name, a.name), a.name 这是我的数据库您似乎正在尝试按以下方式排序: 父名称 子名称 您希望父级排序高于子级 因此,您需要在ORDER BY子句中添加第三列,以便区分孩子和父母 这应该适用于您的具体情况: select

这就是我需要的结果

这就是我得到的结果

这是我的问题

select a.id, a.name, a.parent 
from categ a left join categ b on a.parent=b.id 
order by coalesce(b.name, a.name), a.name

这是我的数据库

您似乎正在尝试按以下方式排序:

  • 父名称
  • 子名称
  • 您希望父级排序高于子级

    因此,您需要在ORDER BY子句中添加第三列,以便区分孩子和父母

    这应该适用于您的具体情况:

    select a.id, a.name, a.parent 
    from categ a left join categ b on a.parent=b.id 
    order by coalesce(b.name, a.name), (b.id is not null), a.name