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

MySQL memilih kata-kata dalam tanda kutip dalam kolom teks campur aduk

Anda harus menemukan cara yang lebih baik untuk mewakili apa yang Anda inginkan, tetapi menurut saya yang berikut ini mendekati:

select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
                 substring_index(substring_index(entry_value, '"', 4), '"' -1),
                 . . .
                )

Anda mungkin harus meletakkan kondisi berhenti berdasarkan jumlah nilai dalam jumlah nilai dalam string, menghasilkan sesuatu seperti:

select concat_ws(',',
                 case when num_entry_values >= 1 then substring_index(substring_index(entry_value, '"', 2), '"' -1) end,
                 case when num_entry_values >= 2 then substring_index(substring_index(entry_value, '"', 4), '"' -1) end,
              . . .
             )

Jika Anda tidak memiliki nomor ini, Anda dapat menghitungnya dengan menghitung jumlah tanda kutip ganda dalam string.

EDIT:

Untuk menghitung jumlah entri, hitung " :

from (select aev.*,
             (length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
      from ch_arf_entry_values aev
     ) aev



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah Anda menggunakan MySQL untuk terhubung ke database mandiri mis. dataku.db?

  2. Masalah MASUKKAN BULK di MySQL

  3. Kolom alias tidak dikenali dalam pernyataan WHERE

  4. MYSQL:Cara mendefinisikan atau mendapatkan variabel string PANJANG

  5. Menginstal pdo_mysql di Amazon EC2 dengan PHP 5.5