大小写替换

1.大小写替换(vm20150069替换成VM20150069)

update t_customer set `cust_no`=concat(UPPER(left(`cust_no`,2)),substring(`cust_no`,3,(length(`cust_no`)-1))) WHERE binary cust_no REGEXP '^[a-z]';

使用到的函数

    • CONCAT(str1,str2):字符连接函数
    • UPPER(str):将字符串改为大写字母
    • LOWER(str):将字符串改为小写字母
    • LENGTH(str):判定字符串长度
    • SUBSTRING(str,a,b):提取字段中的一段,从字符串str的第a位开始提取,提取b个字符
    • LEFT(str,n):提取字符串最左边的n个字符
    • RIGHT(str,n):提取字符串最右边的n个字符(该例未用到)

解决思路

    • 用LEFT单独将首字母取出并用UPPER换成大写
    • 确定字段的长度,并用SBUSTRING取出从第二位到最后一位的所有字段备用。
    • 用CONCAT连接上边的两个值
    • update表中字段的值即可

2.修改身份证最后一位的大小写(63052519941111616x替换成63052519941111616X)

update t_customer set `cust_no`=concat(substring(`cust_no`,1,(length(`cust_no`)-1)),UPPER(RIGHT(`cust_no`,1))) where binary `cust_no` REGEXP "[a-z]$";

你可能感兴趣的:(MySQL)