我有类似 JSON 格式的字符串,包括:
..."id":"500", ..., "id":"600", ...
我需要解析列中的第二个 id
。我使用 substring_index
找到了很多答案,但是,我需要获取第二次(可能是 n 次)出现之后的字符串,而不是之前的字符串> 解析出 ID。
有什么好的解决办法吗?
最佳答案
查找列“some_column”中出现在第 n 个之后的子字符串 目标字符串的出现,
SELECT
SUBSTRING(some_column, CHAR_LENGTH(SUBSTRING_INDEX(some_column, <target_string>, <n>)) + <length of target string + 1>)
FROM some_table
-- or if you want to limit the length of your returned substring...
SELECT
SUBSTRING(some_column, CHAR_LENGTH(SUBSTRING_INDEX(some_column, <target_string>, <n>)) + <length of target string + 1>, <desired length>)
FROM some_table
对于这个问题,形式为:
SELECT
SUBSTRING(col, CHAR_LENGTH(SUBSTRING_INDEX(col, '"id":"', 2)) + 7)
FROM `table`
关于mysql - 定位字符串中第 n 次出现*之后*的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305851/