Published on

mysql LPAD RPAD 字符串前后补全

Authors

一个客户的项目中,在表中有个字段card_no是保存的会员编号,客户采用的是四位数的方式来记录的,0001~9999这样的,字段采用的字符串的方式来保存的。

现在客户有一个这样的需求,在一个搜索应用中,中需要输入会员的后面的编号,比如0001号的,只需要输入1就可以直接搜索出这个会员。

当然,我们可以在采用sql搜索之前通过程序进行这个值的判断补全。

而更简单的方法就是通过mysql的LPAD函数。

LPAD(str,len,padstr)

使用这个函数的结果就是对str字符串判断len长度,如果超过就从左边开始截取指定len的长度,如果不足len长度就使用padstr在str前面进行补全。

对于客户这需求,我们就可以写出这样的sql语句了。

SELECT * FROM ecs_users WHERE card_no = LPAD(88,4,0);//88为传入的数值

同时还有一个函数RPAD,使用方法也是一样的。这个只是进行后补全的。