SUBSTRING_INDEX()函数在指定数量的分隔符出现之前返回字符串的子字符串。
SUBSTRING_INDEX(string, delimiter, number)
| 参数 | 描述 |
| string | 必须项。原始字符串 |
| delimiter | 必须项。要搜索的分隔符 |
| number | 必须项。搜索分隔符的次数。可以是正数或负数。如果是正数,则此函数返回分隔符左侧的所有数字。如果是负数,则此函数返回分隔符右侧的所有内容。 |
在查询一个version字段的时候用到过这个函数,记录一下。比如某个version_name字段里存储的是'11.10.23.2333'的varchar类型值,想要去查询大于等于11.10.10版本的,可以用到这个函数。
- SELECT * FROM table_name
- WHERE
- SUBSTRING_INDEX(version_name, '.', 1) * 10000 +
- SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 2), '.', -1) * 100 +
- SUBSTRING_INDEX(SUBSTRING_INDEX(version_name, '.', 3), '.', -1) * 1
- >= 111010;
解释一下: