Saya menjalankan pertanyaan ini:
select * from housedata where JSON_EXTRACT(properties->"$.Type", '$[0]') in ('House', 'Flat');
Walau bagaimanapun, dalam beberapa baris, terdapat berbilang item dalam tatasusunan Type json dan saya tidak mahu menggunakan item pertama sahaja seperti contoh di atas.
Andaikan ia ["Rumah", "Flat"] Saya mahu memadankan pertanyaan, tetapi juga apabila ia adalah ["Rumah", "Khemah"] sebagai salah satu item dalam senarai "Dalam". < /p>
Bolehkah ini dilaksanakan dalam pertanyaan? Saya telah cuba mencarinya, tetapi saya telah mencari contoh mencari sesuatu dalam tatasusunan JSON itu sendiri, tetapi bukan itu yang saya cari. p>
Ya, ini berfungsi (diuji dalam MySQL 8.0.32):
Jika anda ingin menguji sebarang nilai dalam tatasusunan JSON yang sepadan dengan salah satu senarai nilai, gunakan JSON_OVERLAPS():
Sudah tentu, ini akan menjadi lebih mudah jika bukannya menggunakan JSON untuk atribut berbilang nilai, anda menggunakan jadual bergantung dan menyimpan satu nilai setiap baris.