Mysql查询记录加上固定长度的编号,right函数和concat函数的结合使用。

现在有这么个需求,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;


看懂了吗?还看不懂就自己试试吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值