字段 1 =id ; 字段 2 =pid ; 临时字段 3 =path ;
/path 由 id 和 pid 拼接组成 /
如果 id>pid 则 path=id.pid; 如果 id<pid 则 path=pid.id;
/最后按 path 进行排序 /
求教这个语句咋整呀?
1
ibx 2019-01-23 19:02:13 +08:00
你这个表设计应该是分销系统的业务吧
|
2
dapang1221 2019-01-23 19:05:24 +08:00
CONCAT(MAX(id, pid), '.', MIN(id,pid))
|
3
dapang1221 2019-01-23 19:06:29 +08:00 1
path 排序是个啥东西,123.345 这样的怎么排,字典序么……
|
4
lanterboy 2019-01-23 19:06:33 +08:00 1
case 函数
|
5
mamahaha OP @dapang1221 感谢,就是直接连起来,123 和 456 组成 123456。.改成逗号就对了,我不太熟 mysql。
|
6
mayorbryant 2019-01-23 19:23:06 +08:00 1
SELECT if(id - pid > 0, CONCAT(id, '.', pid), CONCAT(pid, '.', id)) AS f_path FROM `your_table` ORDER BY `f_path`
|
7
mamahaha OP @mayorbryant 感谢,已实现功能,感觉瞬间学会了 mysql
|