我想从搜索字符串的开始到最后一次出现字符串的子字符串。
示例字符串:“Abcd Corp是一个合作的好组织.Abcd公司合并”
搜索字符串:“Corp”
预期输出:“Abcd Corp是一个很好的组织工作.Abcd”
即。得到字符串uptil最后一次出现的搜索字符串。有人建议最好的方法吗?
答案 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可用两次时有效。如果超过两个则需要更改函数参数。