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

三、实践

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位的)不一致的门店;如果不存在不一致,则代表转换成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章