MySQL には、文字列内の部分文字列の最初のインスタンスを識別する INSTR() 関数が用意されています。ただし、最後の出現箇所を見つけることは、この目的専用の組み込み関数がないため、困難を伴います。
解決策:
MySQL は、これを達成するための代替方法を提供します。このタスクは、次に示すように、LOCATE 関数と REVERSE 関数を使用します。
SELECT CHAR_LENGTH("Have_a_good_day") - LOCATE('_', REVERSE("Have_a_good_day"))+1;
この式は、指定された部分文字列の最後のインデックス位置を計算します。この例では、アンダースコア (_) です。
最後に出現する前の部分文字列を取得するには、次を使用します。
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last")));
これにより、文字列「first_middle」が返されます。区切り文字を含めるには、次のようにクエリを調整します:
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last"))+1);
最後の出現後の部分文字列を見つけるには、SUBSTRING_INDEX 関数を検討してください:
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
この式は部分文字列 " を生成します。最後に。」
以上がMySQL で部分文字列の最後の出現を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。