• Mysql - 字符串截取、拆分


    前言

    在开发过程中,字符串的截取虽然可以在程序代码中来做,但是如果可以在 SQL 语句中处理,又不会造成 SQL 语句变的很复杂,那自然就可以在 SQL 语句中处理,速度还会更快一点。这个就需要根据具体的业务进行衡量了

    概述

    一、截取字符串:SUBSTRING(...)SUBSTR(...)MID(str,pos,len)

    SUBSTRING(...)

    语法:
    SUBSTRING(str FROM pos FOR len)SUBSTRING(str FROM pos)SUBSTRING(str, pos)SUBSTRING(str, pos, len)

    参数名解释
    str需要截取的字符串
    pos起始位置。 可以是正数也可以是负数。如果是正数,此函数从字符串的开头提取。 如果是负数,此函数从字符串的末尾提取
    len要提取的字符数。 如果省略,将返回整个字符串(从 pos 位置开始)

    举例:

    1. 从位置 2 开始,提取 3 个字符
    SELECT SUBSTRING('模型资料-6' FROM 2 FOR 3)	// 型资料
    
    • 1
    1. 从末尾开始,提取 5 个字符
    SELECT SUBSTRING('模型资料-6',-5,5)	// 型资料-6
    
    • 1
    1. 从位置 6 开始,提取之后的所有字符
    SELECT SUBSTRING('模型资料-6',6)	// 6
    
    • 1

    SUBSTR(...)

    用法等同于 SUBSTRING(...),语法也相同

    MID(str,pos,len)

    只有这一种语法,用法等同于 SUBSTRING(...)

    二、拆分字符串:SUBSTRING_INDEX(str, delim, count)

    参数名解释
    str需要拆分的字符串
    delim分隔符,通过某字符进行拆分
    count当 count 为正数,取第 n 个分隔符之前的所有字符;当 count 为负数,取倒数第 n 个分隔符之后的所有字符

    举例:

    1. 取分隔符之后的字符
    SELECT SUBSTRING_INDEX('模型资料-6','-',-1)	// 6
    
    • 1
    1. 取分隔符之前的字符
    SELECT SUBSTRING_INDEX('模型资料-6','-',1)	// 模型资料
    
    • 1

    三、替换函数:REPLACE(str,from_str,to_str)

    参数名解释
    str需要进行替换的字符串
    from_str需要被替换的字符串
    to_str需要替换的字符串

    举例:

    1. 模型资料- 替换为 模型
    SELECT REPLACE('模型资料-6','模型资料-','模型')	// 模型6
    
    • 1

  • 相关阅读:
    频繁GC问题原因总结
    HTML5+CSS3-HTML5入门
    SpringMVC controller方法获取请求数据与前端传参类型匹配
    预处理详解
    Halo升级(Docker Compose安装版本)
    Tomcat服务器的使用
    基于语义分割的相机外参标定
    YOLO_v6讲解
    代码随想录算法训练营第六十五天 | 岛屿数量 深搜、岛屿数量 广搜、岛屿的最大面积
    【校招VIP】前端专业课考点之CSMA/CD协议
  • 原文地址:https://blog.csdn.net/qiaohao0206/article/details/126972272