ホームページ > データベース > mysql チュートリアル > MySQL で区切り文字で区切られた文字列から部分文字列を抽出するにはどうすればよいですか?

MySQL で区切り文字で区切られた文字列から部分文字列を抽出するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-27 16:43:14
オリジナル
725 人が閲覧しました

How to Extract Substrings from a Delimited String in MySQL?

区切り文字を使用した MySQL 部分文字列の抽出

MySQL の文字列から部分文字列を抽出するには、SUBSTRING_INDEX 関数を使用します。この関数を使用すると、部分文字列を区切る区切り文字と、抽出する部分文字列の位置を指定できます。

たとえば、次の表について考えてみましょう。

item_code name colors
102 ball red,yellow,green
104 balloon yellow,orange,red

色を抽出するには個別の部分文字列を分割するには、次のクエリを使用できます。

SELECT item_code, name, 
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second
FROM Product;
ログイン後にコピー

この中で SUBSTRING_INDEX 関数が 2 回適用されます。クエリ。 1 回目は最初の部分文字列を見つけるために使用され、2 回目は最初のアプリケーションの結果から残りの部分文字列を抽出するために使用されます。

結果の出力は次のようになります:

item_code name color_first color_second
102 ball red yellow
104 balloon yellow orange

すべての部分文字列をフェッチするクエリのより詳細なバージョンは次のようになります:

SELECT item_code, name, 
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 3), ',', -1) AS color_third
FROM Product;
ログイン後にコピー

これより長いクエリは、短いクエリと同じパターンを使用して、色フィールドからすべての部分文字列を取得します。

以上がMySQL で区切り文字で区切られた文字列から部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート