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

MySQL列を解析してデータを抽出する

    これは、行に最大9つの部分がある場合に機能します。
    より多くの部分の場合がある場合は、サブクエリを拡張して9より多くの数を含めることができます:

    select  
      group_concat(
        replace(t.part, '-', concat(' ', left(t.part, 2)))
        order by t.partno
        separator ' '                                      
      ) Models
    from (
      select t.Models, p.partno,
        replace(replace(
          substring_index(t.Models, ';', p.partno),
          substring_index(t.Models, ';', p.partno - 1),
          ''
        ), ';', '') part 
      from parts_listing t cross join (
        select 1 partno 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
      ) p 
      where replace(replace(Models, '-', ''), ';', '') regexp'^[0-9]*$'
    ) t
    where t.part <> ''
    group by t.Models
    order by t.Models 
    

    デモ をご覧ください。 。




    1. mysqlからの日付がjavascriptで1日減少するのはなぜですか?

    2. Jetty 7 + MySQL Config [java.lang.ClassNotFoundException:org.mortbay.jetty.webapp.WebAppContext]

    3. MySQLへの挿入中にDateTimeエラーが発生しました

    4. コンマ区切りのリストに基づいて結果を選択する SSRS