mysql 字符串最后一出现某字符
时间: 2023-08-15 18:07:52 浏览: 98
可以使用MySQL内置函数`SUBSTRING_INDEX()`来实现查找字符串中最后一次出现某字符的位置。具体的语法如下:
```
SUBSTRING_INDEX(str, delim, count)
```
其中,`str`表示要进行查找的字符串;`delim`表示要查找的字符;`count`表示要返回的子串在字符串中出现的次数,如果为正数,就返回从左边开始数第`count`个分隔符之前的所有字符;如果为负数,就返回从右边开始数第`count`个分隔符之后的所有字符。
为了获取字符串中最后一次出现某字符的位置,我们可以将`count`设为`-1`,这样就可以返回从右边开始数第一个分隔符之后的所有字符,也就是字符串中最后一次出现某字符的位置。具体的语句如下:
```
SELECT LENGTH(str) - LENGTH(SUBSTRING_INDEX(REVERSE(str), REVERSE(delim), 1)) + 1 AS last_index FROM table_name;
```
其中,`str`表示要进行查找的字符串,`delim`表示要查找的字符,`table_name`表示要查询的表名。这个语句将返回字符串中最后一次出现某字符的位置。
值得注意的是,如果字符串中没有出现要查找的字符,那么上述语句将返回整个字符串的长度。为了避免这种情况,我们可以在查询之前先判断字符串中是否包含要查找的字符,如果不包含,就返回`NULL`。具体的语句如下:
```
SELECT IF(LOCATE(delim, str) > 0, LENGTH(str) - LENGTH(SUBSTRING_INDEX(REVERSE(str), REVERSE(delim), 1)) + 1, NULL) AS last_index FROM table_name;
```
这个语句将在字符串中包含要查找的字符时返回字符串中最后一次出现某字符的位置,否则返回`NULL`。
阅读全文