现在有这么个需求,mysql里面有了已经排序好的编号,1,2,3,4,5.....1100,不超过6位数。我需要做的是把这些编号变成固定长度的形式。
比如11号,变成固定长度为6,就是前面填充4个0————000011;
以前我都是用程序代码自己写的,不但效率低,还费脑子,需要判断长度,再去决定前面填充几个0.
后来接触到mysql的right(x,y)函数,接收两个参数x和y。意思是返回查询的x的字段取后y位。
比如
这个字段,使用
SELECT right(id,3) FROM tes where id = 111111455这句话,查出来就是后面的455
,left函数同理。所以我们可以用它来截取成6位。
可是怎么连接字符串呢?
使用concat(x,y)函数就可以。
SELECT concat("北半球第一帅",id) handsome FROM tes where id = 111111455
这里的handsome是给查询的结果取了个别名,这样查出来的列名就不是难看的
了,而是帅气的
,因为程序中要用到别名的。另外,concat函数两个参数可以调换位置,这样查出来的北半球第一帅就放在id后面了。
接下来,我们就要使用这两个函数结合实现查询固定长度的记录编号了
SELECT right(CONCAT('000000',id),6) id FROM tes;
看懂了吗?还看不懂就自己试试吧。