一、知识点梳理

1)字符串的常见处理
a、索引式提取substring_index(字段名,'索引符号',位置) 
b、直接提取substring(字段名,开始位置,结束位置)
c、计算字符串长度char_length(字段名) 和 length(字段名)
  • length(字段名)汉字算3个字符
  • char_length(字段名) 汉字算1个字符

2)数据格式转换
cast(字段名 AS 数据类型)

二、解题步骤

1) 提前tag字符串
substring_index(tag,',',1) tag -- 查找字段tag中','这个字符的每一个位置并排序,截取第一个','向左所有的字符。 
2)提取difficult字符串
 substring_index(substring_index(tag,',',2),',',-1) difficult, -- difficult在中间位置,需要截取2次
3)提取时长字符串
substring_index(tag,',',-1) duration -- 查找字段tag中','这个字符的每一个位置并排序,截取最后1个','向右所有的字符。 
4)时长是数字需要转换数据类型。
cast(duration as decimal)

CAST(substring_index(tag,',',-1) AS decimal) duration -- 查找字段tag中','这个字符的每一个位置并排序,截取最后1个','向右所有的字符。并且转换数据格式。    
5)完整代码
SELECT exam_id,
	   substring_index(tag,',',1) tag, -- 查找字段tag中','这个字符的每一个位置并排序,截取第一个','向左所有的字符。 
       substring_index(substring_index(tag,',',2),',',-1) difficult, -- difficult在中间位置,需要截取2次
       CAST(substring_index(tag,',',-1) AS decimal) duration -- 查找字段tag中','这个字符的每一个位置并排序,截取最后1个','向右所有的字符。并且转换数据格式。        
FROM examination_info
WHERE tag LIKE'%,%'
;