• MySQL SUBSTRING_INDEX 函数用法


    定义和用法

    SUBSTRING_INDEX()函数在指定数量的分隔符出现之前返回字符串的子字符串。

    语法

    SUBSTRING_INDEX(string, delimiter, number)

    参数值

    参数

    描述

    string

    必须项。原始字符串

    delimiter

    必须项。要搜索的分隔符

    number

    必须项。搜索分隔符的次数。可以是正数或负数。如果是正数,则此函数返回分隔符左侧的所有数字。如果是负数,则此函数返回分隔符右侧的所有内容。


    在查询一个version字段的时候用到过这个函数,记录一下。比如某个version_name字段里存储的是'11.10.23.2333'的varchar类型值,想要去查询大于等于11.10.10版本的,可以用到这个函数。

    1. SELECT * FROM table_name
    2. WHERE
    3. SUBSTRING_INDEX(version_name, '.', 1) * 10000 +
    4. SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 2), '.', -1) * 100 +
    5. SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 3), '.', -1) * 1
    6. >= 111010;

    解释一下:

    • 第一个SUBSTRING_INDEX(version_name, '.', 1) * 10000 是指取第一个.分隔符左边的数字,也就是11,然后乘以10000,也就变成了110000
    • 第二个SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 2), '.', -1) * 100 是指首先通过SUBSTRING_INDEX(version_name, '.', 2) 取得第二个.分隔符左侧的,也就是11.10,然后再通过SUBSTRING_INDEX('11.10','.',-1) 取第一个.分隔符右侧的,也就是10,最后乘以100加到前面那个数字上。此时也就是110000+10*100 = 111000
    • 第三个SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 3), '.', -1) * 1 是指首先通过SUBSTRING_INDEX(version_name, '.', 3) 取得第三个.分隔符左侧的,也就是11.10.23,然后再通过SUBSTRING_INDEX('11.10.23','.',-1) 取最后一个.分隔符右侧的,也就是23,最后乘以1加到前面那个数字上。此时也就是111000+23=111023



     

  • 相关阅读:
    进程间通信(27000字超详解)
    质数的判定和质因数分解
    OpenCV 图像拼接
    一种表达了1/4的差值结构
    C语言问题,整数查找,输入一个整数N,再输入一个整数M,查找整数M在N中第一次出现的位置。
    Cookie、Session、Token的关系和区别
    victoriaMetrics无法获取抓取target的问题
    Redis监控工具_RedisLive
    【苍穹外卖 | 项目日记】第一天
    解决SSH连接自动断开的问题
  • 原文地址:https://blog.csdn.net/qq_41688840/article/details/134511818