MySQL截取和拆分字串函數用法樣本_Mysql

來源:互聯網
上載者:User

本文執行個體講述了MySQL截取和拆分字串函數用法。分享給大家供大家參考,具體如下:

首先說截取字串函數:

SUBSTRING(commentid,9)

這個很簡單,從第9個字元開始截取到最後。SUBSTRING的參數有三個,最後一個是截取的長度,預設是到結尾,負數是倒數第幾位。

接著說拆分字串函數:

SUBSTRING_INDEX(commentid, '-', 1)

這個就稍稍複雜一些了,他的意思是以 - 進行拆分字串,從第一個關鍵詞開始取前面所有的字串。如果上面的第三個參數修改為 -1,那麼就是取倒數第一個。如果我們想從字串 c-11065-50 中,取出50或者11065如何寫呢?

取得50的寫法:

複製代碼 代碼如下:
SELECT SUBSTRING_INDEX(checkid,'-',-1) FROM `check` WHERE checkid = 'c-11065-50'

取得11065的寫法:
複製代碼 代碼如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',-2),'-',1) FROM check WHERE checkid = 'c-11065-50'

或者:
複製代碼 代碼如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',2),'-',-1) FROM check WHERE checkid = 'c-11065-50'

看上去比較複雜了吧,那麼再來點更複雜的:

這下面就是組合用法了,例如我們要截取:content_13-11220-1中的13,最簡單的就是:

複製代碼 代碼如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING(commentid,9), '-', 1), '-',-1) FROM check WHERE commentid = 'content_13-11220-1'

我們發現這裡需要調用三次函數,有沒有可以調用兩次的呢。於是我們可以這樣寫:
複製代碼 代碼如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(commentid, '-', 1), '_',-1) FROM check WHERE commentid = 'content_13-11220-1'

這樣就可以少執行一次函數了,當我們啟動並執行資料足夠多,那麼速度也就顯示的很明顯了。

MySQL更多函數可參考MySQL函數大全:http://www.jb51.net/article/42906.htm

更多關於MySQL相關內容感興趣的讀者可查看本站專題:《MySQL常用函數大匯總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL預存程序技巧大全》及《MySQL資料庫鎖相關技巧匯總》

希望本文所述對大家MySQL資料庫計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.