SQL explode関数とは?使い方と注意点をわかりやすく解説
SQLでは、組み込みのexplode関数はありませんが、SUBSTRING_INDEXやGROUP_CONCATなどの他の関数を使用して、explodeに類似した機能を実現することができます。SUBSTRING_INDEX関数は指定された区切り文字に基づき文字列の一部を取得し、GROUP_CONCATは複数の行データを1つの文字列に結合します。
たとえば、コンマ区切りの値を含むフィールドがある場合、そのフィールドを複数行のデータに分割したいときは、次のSQL文を使用することができます:
SELECT SUBSTRING_INDEX(data, ',', 1) AS value
FROM table
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(data, ',', 2), ',', -1) AS value
FROM table
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(data, ',', 3), ',', -1) AS value
FROM table
-- 依次类推,根据需要拆分的段数来添加 UNION ALL 语句
実際の状況に合わせて、1つのフィールドのコンマ区切り値を複数の行に分割して出力することができます。分割する段数を調整する必要があります。