在MySQL中选择url字符串的一部分

时间:2017-06-07 10:24:31

标签: mysql regex

如果以下字符串中包含唯一元素。我需要从此字符串中提取此唯一元素并将其另存为变量。我需要提取的部分是:Proto-1088。

"{"account":"123456","n":{"Score":"Bad","Ticket":"https://test.test2.com/browse/Proto-1088"},"2":{"Score":"GOOD"}}

我曾尝试在MySQL中使用TRIM函数,但由于Proto中的数字发生了变化,因此无效。

1 个答案:

答案 0 :(得分:1)

如果这是字符串中唯一可以使用SUBSTRING_INDEX

的网址
SELECT 
SUBSTRING_INDEX(
  SUBSTRING_INDEX(
  '"{"account":"123456","n":
  {"Score":"Bad","Ticket":"https://test.test2.com/browse/Proto-1088"},"2":{"Score":"GOOD"}}', 
  '/', -1),
'"',1)

说明:

SUBSTRING_INDEX(str, delim, count)找到count出现delim的索引(如果count为正,则从左侧开始计数,如果为负则从右侧开始计数)并返回该索引之后的所有内容(去如果count为正,则为左,如果为负则为左。

所以我使用SUBSTRING_INDEXcount=-1一起提取最后一次'/'右侧的所有内容,然后将所有内容放在第一次出现'"的右侧使用count=1