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

MySQL 5.7 :mengonversi JSON_ARRAY sederhana menjadi baris

Anda dapat melakukan ini di MySQL 8.0 dengan JSON_TABLE() :

select r.res from mytable, 
 json_table(mytable.content, '$[*]' columns (res int path '$')) r 
where mytable.id = 1

Saya menguji di MySQL 8.0.17, dan ini adalah outputnya:

+------+
| res  |
+------+
|    3 |
|    4 |
+------+

Jika Anda menggunakan versi yang lebih lama dari MySQL 8.0, Anda memiliki opsi berikut:

  • Temukan beberapa solusi SQL yang sangat rumit. Ini hampir selalu merupakan cara yang salah untuk menyelesaikan masalah, karena Anda akan mendapatkan kode yang terlalu mahal untuk dipelihara.
  • Ambil array JSON apa adanya, dan ledakkan dalam kode aplikasi.
  • Normalkan data Anda sehingga Anda memiliki satu nilai per baris, daripada menggunakan array JSON.

Saya sering menemukan pertanyaan di Stack Overflow tentang penggunaan JSON di MySQL yang meyakinkan saya bahwa fitur ini telah merusak MySQL. Pengembang terus menggunakannya secara tidak tepat. Mereka suka itu membuatnya mudah untuk menyisipkan data semi-terstruktur, tetapi mereka menemukan bahwa itu membuat meminta data itu terlalu kompleks.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql menampilkan daftar fungsi yang ditentukan pengguna di phpmyadmin

  2. Permintaan MySQL untuk memilih hasil dengan kenaikan otomatis sebagai kolom baru ditambahkan dalam hasil

  3. Bagaimana cara mendapatkan ukuran database MySQL?

  4. Tabel data yang bergabung dengan tabel pencarian dan pesanan terjebak dengan codeigniter

  5. mysqldump tidak berfungsi di crontab