1. 程式人生 > >mysql中擷取指定字元前後的字串

mysql中擷取指定字元前後的字串

建立表,並插入資料

CREATE TABLE `stringtest` (
  `str` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `test`.`stringtest` (`str`) VALUES ('[\"aa\",\"nn\",\"xx\"]');
INSERT INTO `test`.`stringtest` (`str`) VALUES ('[\"cdfd\",\"nn\",\"xx\"]');
str
[“aa”,“nn”,“xx”]
[“cdfd”,“nn”,“xx”]

使用SUBSTRING_INDEX()函式

substring_index(str,delim,count)

    str:要處理的字串

    delim:分隔符

    count:分隔符計數 

例子

取出上述表中陣列的第一個元素

-- SUBSTRING_INDEX(str,'"',2)取出從左往右第二個引號左邊的字串str
-- SUBSTRING_INDEX(str1,'"',-1)取出從右往左數第一個引號右邊的字串str_1
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(str,'"',2),'"',-1) as str_1 from
stringtest;

結果

str_1
aa
cdfd