如何选择和父子在MySQL

问题描述:

排序呢

我有一个表,看起来像这样如何选择和父子在MySQL

id parent_id name address  email telephone 
2 NULL  name address  email phone 
3 NULL  name2 address2 email2 phone2 
4 NULL  name3 address3 email3 phone3 
5 NULL  name4 address4 email4 phone4 
6 NULL  name6    email6 phone6 
7 5   name7    email7 phone7 
8 NULL  name8    email8 phone8 

我想要做一个选择就可以了,所以我选择所有的行,但如果行有一个父母,它会显示在父母之后。因此,在这种情况下,行会这个样子

id parent_id name address  email telephone 
2 NULL  name address  email phone 
3 NULL  name2 address2 email2 phone2 
4 NULL  name3 address3 email3 phone3 
5 NULL  name4 address4 email4 phone4 
7 5   name7    email7 phone7 
6 NULL  name6    email6 phone6 
8 NULL  name8    email8 phone8 

使用id = 7行的一个id为以先= 6,因为一个使用id = 7的PARENT_ID是5所以它之后直接放置行。

您可以在您的order by条款使用case语句做到这一点:

select * 
from yourtable 
order by case when parentid is null then id else parentid end, parentid 
+0

谢谢,这是我一直在寻找 –