题解 | #修复串列了的记录#

修复串列了的记录

https://www.nowcoder.com/practice/a5475ed3b5ab4de58e2ea426b4b2db76

SELECT exam_id, 
    SUBSTRING_INDEX(tag, ',', 1) AS tag,
    SUBSTRING_INDEX(SUBSTRING_INDEX(tag, ',', 2), ',', -1) AS difficulty,
    SUBSTRING_INDEX(tag, ',', -1) AS duration
FROM(
    SELECT exam_id,	tag, difficulty, duration
    FROM examination_info
    WHERE duration = 0
    ) a

当然,我很乐意为您介绍SUBSTRING_INDEXSUBSTRING这两个MySQL中处理字符串的函数。

SUBSTRING_INDEX

SUBSTRING_INDEX是MySQL中的一个字符串函数,用于返回字符串中的子字符串,这个子字符串是由指定的分隔符分隔的。该函数的语法如下:

SUBSTRING_INDEX(str, delim, count)

  • str:需要处理的字符串。
  • delim:用作分隔符的字符串。
  • count:指定要返回的子字符串的数量。如果count为正数,返回从字符串的开始到指定分隔符的第count次出现之间的子字符串;如果count为负数,则从字符串的末尾向开始计算,并返回最后的count个子字符串。

示例

假设您有一个字符串'a,b,c,d,e',并且想要根据逗号(,)分隔符获取前两个元素:

SELECT SUBSTRING_INDEX('a,b,c,d,e', ',', 2);

这将返回'a,b'

如果想获取最后两个元素,可以使用:

SELECT SUBSTRING_INDEX('a,b,c,d,e', ',', -2);

这将返回'd,e'

SUBSTRING

SUBSTRING(或其同义词SUBSTR)是一个用于提取字符串中的一部分的函数。该函数的语法如下:

SUBSTRING(str, pos, len)

  • str:需要处理的字符串。
  • pos:开始提取的位置(1表示字符串的开始位置)。
  • len(可选):要提取的字符数。如果省略,SUBSTRING函数将提取从pos位置到字符串结尾的所有字符。

示例

假设您有一个字符串'Hello, World!',并且想要提取从第二个字符开始的5个字符:

SELECT SUBSTRING('Hello, World!', 2, 5);

这将返回'ello,'

如果您省略len参数:

SELECT SUBSTRING('Hello, World!', 2);

这将返回从第二个字符开始到字符串结尾的所有字符:'ello, World!'

小结

  • SUBSTRING_INDEX是用来根据分隔符分隔字符串,并返回指定数量的子字符串。
  • SUBSTRING是用来提取字符串的一部分,可以指定开始位置和长度。

这两个函数在处理字符串时非常有用,尤其是在需要从数据库中提取或分析特定格式的数据时。

全部评论

相关推荐

数学转码崽:太可惜了老哥,你这背景这么好,但是项目真的拉了
点赞 评论 收藏
分享
2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务