sql语句怎么截取特殊字符后的所有数据

{"suit":"8","line":"10,"card":"5"}  ,这种字符串,想把里面的数字拆出来求和用,请问应该怎么拆呀?

先用replace把"替换掉,怎么取:后的三个数字呢?求各位大佬帮解答,谢谢

如下:

select a+b+c from (
	select
		(select substring_index(SUBSTRING_INDEX('{"suit":"8","line":"10","card":"5"}','"',4),'"',-1) from dual) a,
		(select substring_index(SUBSTRING_INDEX('{"suit":"8","line":"10","card":"5"}','"',8),'"',-1) from dual) b,
		(select substring_index(SUBSTRING_INDEX('{"suit":"8","line":"10","card":"5"}','"',12),'"',-1) from dual) c
	from dual
) x

 

这种数据格式明细是json,直接将json反序列成对象,然后再取出key即可

如果这种字符串是标准的json字符串 在mysql里面可以这样取: json_unquote(JSON_EXTRACT(字段名, '$.suit')),json_unquote(JSON_EXTRACT(字段名, '$.line')),json_unquote(JSON_EXTRACT(字段名, '$.card'))