3

検索文字列の最初から最後までの文字列の部分文字列を取得したい。

文字列の例: 「Abcd Corp は一緒に仕事をするのに適した組織です。Abcd corp は組み込まれています」

検索文字列: "Corp"

期待される出力: "Abcd Corp は、一緒に仕事をするのに適した組織です。Abcd "

すなわち。検索文字列が最後に出現するまで文字列を取得します。誰かがそれを行うための最良の方法を提案できますか?

4

2 に答える 2

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)

于 2013-03-21T10:33:40.977 に答える
0

Substring_index 関数を使用できます

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

注 : このクエリは、Copr が 2 回利用できる場合にのみ機能します。2 つ以上の場合は、関数パラメーターを変更する必要があります。

于 2013-03-21T08:29:38.820 に答える