sql >> データベース >  >> RDS >> Mysql

mysqlを使用して、テーブル列のコンマ区切り値を行に分割しますか?

    これを試してください

      SELECT ID,SUBSTRING_INDEX(SUBSTRING_INDEX(t.CITY_ID, ',', n.n), ',', -1) value
      FROM Table1 t CROSS JOIN 
      (
       SELECT a.N + b.N * 10 + 1 n
         FROM 
        (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
       ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
        ORDER BY n 
       ) n
     WHERE n.n <= 1 + (LENGTH(t.CITY_ID) - LENGTH(REPLACE(t.CITY_ID, ',', '')))
     ORDER BY ID,value
    

    FIDDLEデモ

    出力:

    ID  VALUE
    1   12
    1   16
    1   17
    1   18
    1   35
    2   12
    2   16
    



    1. MySQLテーブルを日ごとにパーティション化する方法は?

    2. mysqlクエリ-出力の日付をフォーマットしますか?

    3. SQL完全結合

    4. 内部のselect句を使用したSQLの順序付けと、ロールアップによるグループ化