mamahaha
V2EX  ›  MySQL

求一条 mysql 查询语句

By mamahaha at 2019 年 1 月 23 日 · 3704 次点击

字段 1 =id ; 字段 2 =pid ; 临时字段 3 =path ;

/path 由 id 和 pid 拼接组成 /

如果 id>pid 则 path=id.pid; 如果 id<pid 则 path=pid.id;

/最后按 path 进行排序 /

求教这个语句咋整呀?

7 条回复  •  2019-01-23 21:05:41 +08:00
ibx
   1
ibx  
   2019 年 1 月 23 日
你这个表设计应该是分销系统的业务吧
dapang1221
   2
dapang1221  
   2019 年 1 月 23 日
CONCAT(MAX(id, pid), '.', MIN(id,pid))
dapang1221
   3
dapang1221  
   2019 年 1 月 23 日   ❤️ 1
path 排序是个啥东西,123.345 这样的怎么排,字典序么……
lanterboy
   4
lanterboy  
   2019 年 1 月 23 日   ❤️ 1
case 函数
mamahaha
   5
mamahaha  
OP
   2019 年 1 月 23 日
@dapang1221 感谢,就是直接连起来,123 和 456 组成 123456。.改成逗号就对了,我不太熟 mysql。
mayorbryant
   6
mayorbryant  
   2019 年 1 月 23 日   ❤️ 1
SELECT if(id - pid > 0, CONCAT(id, '.', pid), CONCAT(pid, '.', id)) AS f_path FROM `your_table` ORDER BY `f_path`
mamahaha
   7
mamahaha  
OP
   2019 年 1 月 23 日
@mayorbryant 感谢,已实现功能,感觉瞬间学会了 mysql
› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
© 2026 V2EX · 32ms · 3.9.8.5