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

Mengonversi string yang dibatasi menjadi beberapa nilai di mysql

Ini disebut walking a string . Berikut adalah contoh bagaimana Anda dapat melakukannya dengan spesifikasi yang disediakan:

Anda harus membuat tabel yang berisi bilangan bulat sebanyak panjang bidang + 1. Jadi, jika panjang bidang adalah 255, Anda memerlukan 256 catatan yang hanya berisi satu angka dari 0-255.

int_table :

+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+---+

Selanjutnya, Anda akan memerlukan kueri yang bergabung di tabel ini dan memeriksa apakah ada koma di lokasi itu atau tidak. (Saya memanggil tabel Anda legacy_table dengan bidang client dan items , masing-masing.)

select 
  legacy_table.client, 
  substring(
    legacy_table.items, 
    int_table.i + 1, 
    if(
      locate(',', legacy_table.items, int_table.i + 1) = 0, 
      length(legacy_table.items) + 1, 
      locate(',', legacy_table.items, int_table.i + 1)
    ) - (int_table.i + 1)
  ) as item
from legacy_table, int_table
where legacy_table.client = 'xyz001'
  and int_table.i < length(legacy_table.items)
  and (
    (int_table.i = 0) 
    or (substring(legacy_table.items, int_table.i, 1) = ',')
  )

Mungkin tidak cukup efisien bagi Anda untuk benar-benar menggunakannya, tetapi saya pikir saya akan menyajikannya sebagai contoh agar Anda tahu apa yang tersedia.



  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 Membuat Indeks Unik 'Dua Sisi' Pada Dua Bidang?

  2. Bagaimana cara mengambil catatan terakhir dalam tabel database MySQL menggunakan PHP?

  3. php while variabel loop untuk setiap div ketiga

  4. SQL Memilih dari dua Tabel dengan gabungan dan batas dalam

  5. MySQL:ALTER TABLE jika kolom tidak ada