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

Cara mencari nilai yang dipisahkan koma

Solusi Jangka Pendek

Gunakan fungsi FIND_IN_SET :

WHERE FIND_IN_SET('Queensland', csv_column)

...karena menggunakan LIKE dengan wildcard di kedua ujungnya berisiko, tergantung pada seberapa banyak/sedikit kecocokan (dan itu juga memastikan pemindaian tabel). Performa LIKE dengan wildcard di kedua sisi setara dengan REGEXP--itu artinya buruk.

Solusi Jangka Panjang

Jangan simpan nilai yang dipisahkan koma -- gunakan hubungan banyak-ke-banyak yang tepat, yang melibatkan tiga tabel:

Sesuatu

  • thing_id (kunci utama)

Negara Bagian Australia

  • State_id (kunci utama)
  • Nama_Negara

Things_to_Auz_States

  • thing_id (kunci utama, kunci asing untuk THINGS tabel)
  • State_id (kunci utama, kunci asing ke AUSTRALIAN_STATES tabel)

Anda perlu GABUNG untuk mendapatkan data dari tiga tabel, tetapi jika Anda ingin mengetahui hal-hal seperti berapa banyak yang terkait dengan status tertentu, atau dua status tertentu, ini adalah model yang tepat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gagal terhubung ke mysql di 127.0.0.1:3306 dengan akses root pengguna ditolak untuk 'root'@'localhost' pengguna (menggunakan kata sandi:YA)

  2. Mengambil koordinat tipe titik MySQL

  3. Mengumumkan ClusterControl 1.4.1 - Edisi ProxySQL

  4. Pilih kueri menggunakan IN() dan tanpa penyortiran apa pun

  5. ID Sisipan Terakhir MySql, Konektor .net