mysql查询有个字符串在另一个字符串最后一次出现的位置
时间: 2023-10-03 21:08:12 浏览: 48
在MySQL中可以使用`INSTR`函数来查找某个字符串在另一个字符串中最后一次出现的位置。具体方法如下:
1. 使用`REVERSE`函数将原字符串反转。
2. 在反转后的字符串中使用`INSTR`函数查找要查找的字符串在反转后字符串中第一次出现的位置。
3. 将反转后的查找到的位置减去要查找的字符串长度再加一,即为要查找的字符串在原字符串中最后一次出现的位置。
具体语句如下:
```
SELECT LENGTH(str) - INSTR(REVERSE(str), REVERSE(search_str)) - LENGTH(search_str) + 2 AS last_position
FROM table_name
WHERE str LIKE CONCAT('%', search_str, '%');
```
其中,`str`为要在其中查找的字符串,`search_str`为要查找的字符串,`table_name`为要查询的表名。
相关问题
MySQL中查询字符串包含另一个字符串
在MySQL中,可以使用两种方式查询字符串是否包含另一个字符串。一种是利用FIND_IN_SET函数,另一种是使用LIKE语句。
方式一:利用FIND_IN_SET函数
可以使用FIND_IN_SET函数来查询一个字符串是否包含在另一个字段中。具体语法如下:
SELECT * FROM test_user WHERE FIND_IN_SET('feifei', hobby) > 0;
方式二:利用LIKE语句
可以使用LIKE语句来查询一个字段中是否包含某个字符串。具体语法如下:
SELECT * FROM test_user WHERE hobby LIKE '%guanguan%';
其中,%表示匹配任意长度的字符串。所以在这个例子中,'%guanguan%'将匹配包含"guanguan"的任意位置的字符串。
mysql 一个字符在字符串最后的位置
如果您想查找一个字符在一个字符串中最后出现的位置,可以使用MySQL内置函数`INSTR`结合`REVERSE`函数来实现。具体实现如下:
```mysql
SELECT LENGTH(your_string) - INSTR(REVERSE(your_string), reverse(your_character)) + 1 as last_position;
```
其中,`your_string`是要查找的字符串,`your_character`是要查找的字符。这条SQL语句会返回该字符在该字符串中最后出现的位置。
例如,如果要查找字符串“Hello World!”中最后一个字符“!”的位置,可以使用以下SQL语句:
```mysql
SELECT LENGTH('Hello World!') - INSTR(REVERSE('Hello World!'), reverse('!')) + 1 as last_position;
```
执行后会返回结果:
```
last_position
-------------
12
```
即最后一个字符“!”在该字符串中的位置是12。