Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Parsing Meskipun Kolom MySQL untuk Mengekstrak Data

Ini akan berfungsi jika baris memiliki hingga 9 bagian.
Jika ada kasus untuk lebih banyak bagian, Anda dapat memperluas subkueri untuk memasukkan lebih banyak angka daripada 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 

Lihat demo .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah susunan semua baris dari latin1_swedish_ci ke utf8_unicode_ci?

  2. Cara efisien menemukan lokasi terdekat di dekat lokasi tertentu

  3. Menggunakan mysql_real_escape_string dengan PDO (tidak ada koneksi ke server localhost)

  4. Mysql mengembalikan lebih dari satu baris

  5. Mengisi Kesenjangan dalam Tanggal yang Dikembalikan dari Database - solusi SQL murni mungkin?