MySQL截取字符串

一、背景

    以前系统存在的门店号以前是截取的门店名称前面4位,现业务需要门店号变更为5位,所以门店名称小于10000的需要前面补0,大于10000的就直接取门店名称前面5位。故需要核对转换前后,4位店号的截取是否正确。

二、学习点:MySQL截取字符串

1、MySQL 字符串截取函数:left(), right(), substring()

2、left(str, length):指的是截取str字符串左边length位,

比如,select left('helloworld', 5),截取的str就是hello

3、right(str, length):指的是截取str字符串右边length位

比如,select right('helloworld', 5),截取的str就是world

4、substring(str, pos):指的是从字符串str的第 pos 个字符位置开始取,直到结束,如果pos是负数,则指的是从字符串str的倒数 pos 个字符位置开始取,直到结束

比如,select substring('helloworld', 6),截取的str就是world;

select substring('helloworld', -5),截取的str就是world

5、substring(str, pos, len):指的是从字符串str的第 pos 个字符位置开始取len位,如果pos是负数,则指的是从字符串str的倒数 pos 个字符位置开始取开始取len位; len 不能取负值

比如,select substring('helloworld', 6,3),截取的str就是wor;

select substring('helloworld', -5,3),截取的str就是wor

三、实践

图1 表格部分字段

SELECT longStoreNo,storeno,name,RIGHT(longStoreNo,4) FROM o2o_store WHERE RIGHT(longStoreNo,4)

NOT IN(

SELECT SUBSTRING(NAME,2,4) FROM o2o_store)

-- 查询4位店号(截取门店名称前面4位的)和10位店号(尾数4位的)不一致的门店;如果不存在不一致,则代表转换成功

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容