一、知识点梳理
1)字符串的常见处理
a、索引式提取substring_index(字段名,'索引符号',位置)
b、直接提取substring(字段名,开始位置,结束位置)
c、计算字符串长度char_length(字段名) 和 length(字段名)
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'%,%' ;