MariaDBでは、SUBSTRING_INDEX()
を使用できます 文字列内の特定の文字の前後のすべてを返す関数。
この関数は3つの引数を受け入れます。文字列、区切り文字、および返される部分文字列を決定するために使用するその区切り文字の出現回数。
例
次の例で、関数がどのように機能するかを確認できます。
前にすべてを選択
特定の文字の前にあるすべてのものを選択するには、3番目の引数を正の値にします。
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);
結果:
Red,Green
この例では、2番目のコンマの前のすべてを選択します。これは、コンマ(,
)を使用して行われます。 )区切り文字として、および2
カウントとして。
その例ではカンマを使用しましたが、任意の文字または文字列である可能性があります:
SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);
結果:
Red or Green
後にすべてを選択
負の値を使用して、特定の文字の後のすべてを選択します:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);
結果:
Green,Blue
負の値は、右からカウントインし、区切り文字の右側にある部分文字列を選択することを意味することに注意してください。
区切り文字が見つからない場合
文字列に区切り文字が見つからない場合、文字列は完全に返されます。
例:
SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);
結果:
Red,Green,Blue
この場合、ハイフン(-
を使用したため、文字列全体が完全に返されます。 )区切り文字として使用しますが、文字列にハイフンはありませんでした。
文字列がの場合、同じ結果が得られます 区切り文字が含まれていますが、count
文字列内の区切り文字の数を超えています。
例:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);
結果:
Red,Green,Blue
大文字と小文字の区別
SUBSTRING_INDEX()
関数は、区切り文字の大文字と小文字を区別する検索を実行します。つまり、区切り文字は、一致する前に正しい大文字と小文字を区別する必要があります。
不正なケース
ケースが一致しない例を次に示します。
SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);
結果:
Red and green and blue
文字列全体を取得します。
正しいケース
これは同じ例ですが、ケースが一致する場合:
SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);
結果:
Red and green