Mysql在最后一次出现字符串之前获取子字符串

时间:2013-03-21 07:14:58

标签: mysql

我想从搜索字符串的开始到最后一次出现字符串的子字符串。

示例字符串“Abcd Corp是一个合作的好组织.Abcd公司合并”

搜索字符串“Corp”

预期输出“Abcd Corp是一个很好的组织工作.Abcd”

即。得到字符串uptil最后一次出现的搜索字符串。有人建议最好的方法吗?

2 个答案:

答案 0 :(得分:1)

这是一种方式,可能不是最有效的方式:


mysql> set @a = "Abcd Corp is a good org to work with. Abcd corp incorporated";
Query OK, 0 rows affected (0.00 sec)

mysql> select substring(@a, 1, length(@a) - length('corp') - instr(reverse(@a), reverse('corp')) + 1);
+-----------------------------------------------------------------------------------------+
| substring(@a, 1, length(@a) - length('corp') - instr(reverse(@a), reverse('corp')) + 1) |
+-----------------------------------------------------------------------------------------+
| Abcd Corp is a good org to work with. Abcd corp in                                      |
+-----------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

您可以使用Substring_index函数

 select substring_index("Abcd Corp is a good org to work with. Abcd corp incorporated.", "corp", 1) 

注意:此查询仅在Copr可用两次时有效。如果超过两个则需要更改函数参数。