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

JSON_ARRAYAGG() – Buat Array JSON dari Baris Query di MySQL

Di antara banyak fungsi agregat MySQL, ada satu yang disebut JSON_ARRAYAGG() . Fungsi ini memungkinkan Anda untuk menggabungkan kumpulan hasil sebagai larik JSON tunggal. Setiap baris dari kumpulan hasil berakhir sebagai elemen tunggal dalam larik.

Urutan elemen dalam array tidak ditentukan.

Sintaks

Sintaksnya seperti ini:

JSON_ARRAYAGG(col_or_expr)

Dimana col_or_expr adalah kolom atau ekspresi yang mengevaluasi nilai tunggal.

Contoh

Berikut ini contoh untuk didemonstrasikan.

Berikut adalah kueri umum yang mungkin kami jalankan tanpa JSON_ARRAYAGG() fungsi:

SELECT 
  District AS 'State',
  Name AS 'City'
FROM City
WHERE CountryCode = 'AUS'
ORDER BY State;

Hasil:

+-----------------+---------------+
| State           | City          |
+-----------------+---------------+
| Capital Region  | Canberra      |
| New South Wales | Sydney        |
| New South Wales | Newcastle     |
| New South Wales | Central Coast |
| New South Wales | Wollongong    |
| Queensland      | Brisbane      |
| Queensland      | Gold Coast    |
| Queensland      | Townsville    |
| Queensland      | Cairns        |
| South Australia | Adelaide      |
| Tasmania        | Hobart        |
| Victoria        | Melbourne     |
| Victoria        | Geelong       |
| West Australia  | Perth         |
+-----------------+---------------+

Kami dapat menyesuaikan kueri itu, sehingga setiap kota menjadi elemen dalam array. Untuk melakukan ini, kita cukup memberikan Name kolom (nama kota) ke JSON_ARRAYAGG() fungsi.

Kami juga menggunakan GROUP BY klausa untuk mengelompokkan hasil menurut District kolom (dalam hal ini, kami telah membuat alias untuk kolom ini yang disebut State ).

SELECT 
  District AS 'State',
  JSON_ARRAYAGG(Name) AS 'Cities'
FROM City
WHERE CountryCode = 'AUS'
GROUP BY State;

Hasil:

+-----------------+--------------------------------------------------------+
| State           | Cities                                                 |
+-----------------+--------------------------------------------------------+
| Capital Region  | ["Canberra"]                                           |
| New South Wales | ["Sydney", "Newcastle", "Central Coast", "Wollongong"] |
| Queensland      | ["Brisbane", "Gold Coast", "Townsville", "Cairns"]     |
| South Australia | ["Adelaide"]                                           |
| Tasmania        | ["Hobart"]                                             |
| Victoria        | ["Melbourne", "Geelong"]                               |
| West Australia  | ["Perth"]                                              |
+-----------------+--------------------------------------------------------+

Lihat juga JSON_OBJECTAGG() fungsi yang memungkinkan Anda membuat objek JSON dari kueri.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengimpor File CSV ke Tabel MySQL

  2. Mencapai hierarki, Hubungan Orang Tua/Anak dengan cara yang efektif dan mudah

  3. Bagaimana Mengonversi datetime ke UTC di MySQL

  4. Perbedaan antara dua pendekatan tabel bergabung ini?

  5. Menggunakan Python dan MySQL dalam Proses ETL:SQLAlchemy