1. 程式人生 > >mysql 實現 substring+lastindexof 的方法

mysql 實現 substring+lastindexof 的方法

首先需要使用到的方法有SUBSTRING(SUBSTR)LENGTHLOCATEREVERSE、SUBSTRING_INDEX,先看一下這幾個方法的大致意思及使用

方法

使用示例

方法及引數解釋

SUBSTRING(SUBSTR)

SUBSTRING(str,pos)

mysql>SELECTSUBSTRING('Quadratically',5);

->'ratically'

SUBSTRING(str FROM pos)

mysql>SELECTSUBSTRING('foobarbar'FROM4);

->'barbar'

SUBSTRING(str,pos,len)

mysql>

SELECTSUBSTRING('Quadratically',5,6);

->'ratica'

SUBSTRING(str FROM pos FOR len)

mysql>SELECTSUBSTRING('Sakila'FROM-4FOR2);

->'ki'

方法:擷取字串

引數:str:被擷取字串

      pos:開始擷取的位置

      len:擷取長度

注:1.pos是位置,不是下標;

   2.pos可以為負數,為負時則從後開始擷取;為0時什麼都沒有

LENGTH

LENGTH(str),

mysql>SELECTLENGTH('text');

->4

方法:獲取字串長度

引數:s

tr:要獲取長度的字串

LOCATE

LOCATE(substr,str)

mysql>SELECTLOCATE('bar','foobarbar');->4

LOCATE(substr,str,pos)

mysql>SELECTLOCATE('bar','foobarbar',5);->7

方法:返回字元串 substr 在字串 str 中第一次出現的位置。

如果子串 substr 在 str 中不存在,返回值為 0

引數:substr:原字串

      str:要查詢的字串

      pos:開始查詢的位置

REVERSE

REVERSE(str)

mysql>SELECTREVERSE

('abc');

->'cba'

方法:反轉字串

引數:str:要反轉的字串

SUBSTRING_INDEX

SUBSTRING_INDEX(str,delim,count)

mysql>SELECTSUBSTRING_INDEX('www.mysql.com','.',2);

->'www.mysql'

mysql>SELECTSUBSTRING_INDEX('www.mysql.com','.',-2);

->'mysql.com'

方法:按關鍵字擷取字串

引數:str:被擷取字串

delim:關鍵字

      count:關鍵字出現的次數

接下來就是利用mysql 實現 substring+lastindexof

方法一:SELECT SUBSTRING_INDEX(str, search_str, -1);

示例:mysql>SELECTSUBSTRING_INDEX('www.mysql.com','.',-1);

->'com'

方法二:SELECT SUBSTR(str, LENGTH(str) - LOCATE(search_str, REVERSE(str)) + 2)

示例:mysql>SELECTSUBSTR('www.mysql.com',LENGTH('www.mysql.com') - LOCATE('.',REVERSE('www.mysql.com')) + 2);

->'com'

總結:方法一比較簡單,方法二比較靈活