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位的)不一致的門店;如果不存在不一致,則代表轉換成功

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