sql >> Database teknologi >  >> RDS >> Mysql

Parsing Though MySQL Column for at udtrække data

Dette vil fungere, hvis rækken har op til 9 dele.
Hvis der er et argument for flere dele, kan du udvide underforespørgslen til at omfatte flere tal end 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 

Se demoen .




  1. PHP isset() med flere parametre

  2. MySQL:tjek hvilken version:32 bit eller 64 bit?

  3. PostgreSQL:Fjernforbindelse til Postgres-instans ved hjælp af psql-kommandoen

  4. SQL en-til-mange-relation - Hvordan vælger man rækker afhængigt af flere til-mange egenskaber?