mysql查询是对字段进行补0操作,可用于树状结构整体排序


MYSQL补0方式,两种情况,在字段前补0:LPAD(str,len,padstr) ,在字段后补0:RPAD(str,len,padstr)

测试表数据:

select deptname,sort from t_sm_dept ORDER BY sort;

 查询排序字段sort的最大长度:

select MAX(LENGTH(sort)) from t_sm_dept;


 

1. 在字段前补0:LPAD(str,len,padstr) 

  LPAD(str,len,padstr) 返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。

测试查询:

select sort,LPAD(sort,7,0) from t_sm_dept;


 实际运用:

 查询语句:

select d.deptname,
d.sort,
LPAD(d.sort,(select MAX(LENGTH(sort)) from t_sm_dept),0) as sorttemp
from t_sm_dept d ORDER BY sorttemp;

查询结果:


 

2. 在字段后补0:RPAD(str,len,padstr) 

  RPAD(str,len,padstr) 返回字符串 str, 其右边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。

测试查询:

select sort,RPAD(sort,7,0) from t_sm_dept;


 实际运用:

查询语句(查询及排序):

select d.deptname,
d.sort,
RPAD(d.SORT,(select MAX(LENGTH(sort)) from t_sm_dept),0) as sorttemp
from t_sm_dept d ORDER BY sorttemp;

查询结果:

如查询结果显示,排序后的结果可以按照层级关系进行整体排序。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM