MySQLのSUBSTRING_INDEX()
を使用できます 文字列内の特定の文字の前後のすべてを返す関数。
この関数を使用すると、使用する区切り文字を指定したり、区切り文字を指定したりできます(文字列に複数の区切り文字がある場合)。
構文
構文は次のとおりです。
SUBSTRING_INDEX(str,delim,count)
str
文字列、delim
は区切り文字(そこから左または右に部分文字列が必要)であり、count
どの区切り文字を指定します(文字列内に区切り文字が複数回出現する場合)。
区切り文字は1文字でも複数文字でもかまいません。
例1-左側のすべてを選択
前のすべてを選択するには 特定の文字、正の値を使用します:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 2);
結果:
Cats,Dogs
この例では、2番目のコンマの前のすべてを選択します。これは、コンマ(,
)を使用して行われます。 )区切り文字として、および2
カウントとして。
例2–右側のすべてを選択
後のすべてを選択するには 特定の文字については、負の値を使用する必要があります:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', -2);
結果:
Dogs,Rabbits
負の値は、右からカウントインし、区切り文字の右側にある部分文字列を選択することを意味することに注意してください。
区切り文字が一致しない場合はどうなりますか?
文字列に区切り文字が見つからない場合、文字列は単に完全に返されます。
例:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', '-', 1);
結果:
Cats,Dogs,Rabbits
この場合、ハイフン(-
を使用したため、文字列全体が完全に返されます。 )区切り文字として使用しますが、文字列にハイフンはありませんでした。
文字列がの場合、同じ結果が得られます 区切り文字が含まれていますが、count
文字列内の区切り文字の数を超えています。
例:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 10);
結果:
Cats,Dogs,Rabbits
大文字と小文字の区別
SUBSTRING_INDEX()
関数は、区切り文字の大文字と小文字を区別する検索を実行します。つまり、区切り文字は、一致する前に正しい大文字と小文字を区別する必要があります。
不正なケース
ケースが一致しない例を次に示します。
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'AND', 2);
結果:
Cats and Dogs and Rabbits
文字列全体を取得します。
正しいケース
これは同じ例ですが、ケースが一致する場合:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'and', 2);
結果:
Cats and Dogs