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.