Bagaimana mengekstrak data json dari kolom di mysql?
Di MySQL, fungsi SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b') AS 'Result';_7 mengembalikan data dari dokumen JSON. Data aktual yang dikembalikan ditentukan oleh jalur yang Anda berikan sebagai argumen Show
Anda memberikan dokumen JSON sebagai argumen pertama, diikuti dengan jalur data yang akan dikembalikan. Anda juga dapat menyediakan beberapa jalur untuk mengembalikan data dari beberapa tempat dalam dokumen SintaksisSintaksnya seperti ini JSON_EXTRACT(json_doc, path[, path] ...)_ Di mana SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b') AS 'Result';8 adalah dokumen JSON dan SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b') AS 'Result';9 adalah jalur ke nilai yang akan dikembalikan Jika ada kemungkinan bahwa argumen tersebut dapat mengembalikan beberapa nilai, nilai yang cocok akan dibungkus secara otomatis sebagai larik, dalam urutan yang sesuai dengan jalur yang menghasilkannya Contoh 1 – Penggunaan DasarBerikut adalah contoh untuk ditunjukkan SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b') AS 'Result'; Hasil +--------+ | Result | +--------+ | 2 | +--------+ Dalam hal ini, kami mengembalikan nilai kunci +--------+ | Result | +--------+ | 2 | +--------+0 Ini contoh lainnya SELECT JSON_EXTRACT('{"Name": "Bart", "Age": 10}', '$.Name') AS 'Result'; Hasil +--------+ | Result | +--------+ | "Bart" | +--------+_ Contoh 2 – Jalur Tidak AdaJika Anda menentukan jalur yang tidak ada, nilai NULL dikembalikan SELECT JSON_EXTRACT('{"Name": "Homer", "Age": 39}', '$.Gender') AS 'Result';_ Hasil +--------+ | Result | +--------+ | NULL | +--------+ Anda juga akan mendapatkan nilai NULL jika salah satu argumennya adalah +--------+ | Result | +--------+ | 2 | +--------+1 Contoh 3 – ArrayBerikut adalah contoh menggunakan array SELECT JSON_EXTRACT('[1, 2, 3]', '$[2]') AS 'Result'; Hasil +--------+ | Result | +--------+ | 3 | +--------+ Array menggunakan penomoran berbasis nol, jadi dalam hal ini, elemen ketiga diganti Ini contoh larik lainnya. Kali ini kami mengembalikan nilai dari array bersarang SELECT JSON_EXTRACT('[1, 2, [3, 4, 5]]', '$[2][1]') AS 'Result'; Hasil SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": 3}', '$.b') AS 'Result';0 Contoh 4 – Beberapa JalurAnda dapat menentukan lebih dari satu jalur untuk mengembalikan data dari berbagai tempat dalam dokumen JSON JSON adalah format pertukaran data ringan yang mudah dibaca dan ditulis oleh manusia, dan mudah untuk diurai dan dibuat oleh mesin Data JSON sering digunakan dalam aplikasi web untuk menyimpan dan bertukar data dalam format terstruktur. Itu juga digunakan di banyak RESTful API untuk mengembalikan data dalam format standar yang dapat dengan mudah diuraikan oleh aplikasi klien Artikel saya “SQL vs NoSQL. The Differences” mencatat bahwa garis antara database SQL dan NoSQL menjadi semakin kabur, dengan masing-masing kubu mengadopsi fitur dari yang lain. MySQL5. 7+ database InnoDB dan PostgreSQL 9. 2+ keduanya secara langsung mendukung jenis dokumen JSON dalam satu bidang. Pada artikel ini, kita akan memeriksa MySQL 8. 0 implementasi JSON secara lebih rinci Perhatikan bahwa basis data apa pun akan menerima dokumen JSON sebagai gumpalan string tunggal. Namun, MySQL dan PostgreSQL mendukung data JSON yang divalidasi dalam pasangan kunci/nilai nyata daripada string dasar Hanya Karena Anda Dapat Menyimpan JSON…… itu tidak mengikuti yang seharusnya Normalisasi adalah teknik yang digunakan untuk mengoptimalkan struktur database. Aturan Bentuk Normal Pertama (1NF) mengatur bahwa setiap kolom harus memiliki satu nilai — yang jelas-jelas rusak dengan menyimpan dokumen JSON multi-nilai Jika Anda memiliki persyaratan data relasional yang jelas, gunakan bidang nilai tunggal yang sesuai. JSON harus digunakan dengan hemat sebagai upaya terakhir. Bidang nilai JSON tidak dapat diindeks, jadi hindari menggunakannya pada kolom yang diperbarui atau dicari secara berkala. Selain itu, lebih sedikit aplikasi klien yang mendukung JSON dan teknologinya lebih baru, sehingga mungkin kurang stabil dibandingkan jenis lainnya Yang mengatakan, ada kasus penggunaan JSON yang bagus untuk data yang jarang diisi atau atribut khusus Buat Tabel Dengan Bidang JSONPertimbangkan toko yang menjual buku. Semua buku memiliki ID, ISBN, judul, penerbit, nomor halaman dan data relasional lainnya yang jelas. Misalkan Anda ingin menambahkan sejumlah tag kategori ke setiap buku. Anda bisa mencapai ini menggunakan SQL
Ini akan berhasil, tetapi sulit dan memerlukan banyak upaya untuk fitur minor. Oleh karena itu, Anda dapat menentukan bidang tag JSON di tabel buku database MySQL Anda
Perhatikan bahwa kolom JSON tidak dapat memiliki nilai default, digunakan sebagai kunci utama, digunakan sebagai kunci asing, atau memiliki indeks. Anda dapat membuat indeks sekunder pada kolom virtual yang dibuat, tetapi akan lebih mudah dan praktis untuk mempertahankan nilai dalam bidang terpisah jika diperlukan indeks Menambahkan Data JSONSeluruh dokumen JSON dapat diteruskan dalam pernyataan INSERT atau UPDATE. Misalnya, tag buku kami dapat diteruskan sebagai larik (di dalam string)
JSON juga dapat dibuat dengan ini
Memungkinkan Anda untuk memeriksa jenis nilai JSON. Itu harus mengembalikan OBJECT, ARRAY, tipe skalar (INTEGER, BOOLEAN, dll), NULL, atau kesalahan. Sebagai contoh
Mengembalikan 1 jika JSON valid atau 0 sebaliknya
Mencoba memasukkan dokumen JSON yang tidak valid akan menimbulkan kesalahan dan seluruh catatan tidak akan dimasukkan/diperbarui Mencari Data JSONMenerima dokumen JSON yang sedang dicari dan yang lain untuk dibandingkan. Ini mengembalikan 1 ketika kecocokan ditemukan. Sebagai contoh
Hal serupa mengembalikan jalur ke kecocokan yang diberikan atau NULL saat tidak ada kecocokan. Melewati dokumen JSON yang sedang dicari, 6 untuk menemukan kecocokan pertama, atau 7 untuk menemukan semua kecocokan, dan string pencarian (di mana _8 cocok dengan sejumlah karakter dan 9 cocok dengan satu karakter dengan cara yang identik dengan ). Sebagai contoh
Jalur JSONJalur JSON menargetkan nilai dan dapat digunakan untuk mengekstrak atau memodifikasi bagian dokumen JSON. Ini menunjukkan ini dengan mengekstraksi satu atau lebih nilai
Semua definisi jalur dimulai dengan _1 diikuti oleh penyeleksi lainnya
Contoh berikut mengacu pada dokumen JSON berikut 0Contoh jalur
Mengekstrak Jalur JSON dalam KueriAnda dapat mengekstrak nama dan tag pertama dari tabel buku Anda menggunakan kueri 1Untuk contoh yang lebih kompleks, misalkan Anda memiliki tabel pengguna dengan data profil JSON. Sebagai contoh idnameprofile1Craig{ “email”. [“craig@email1. com”, “craig@email2. com”], “twitter”. “@craigbuckler” }2SitePoint{ “email”. [], "Indonesia". “@sitepointdotcom” }Anda dapat mengekstrak nama Twitter menggunakan jalur JSON. Sebagai contoh 2Anda dapat menggunakan jalur JSON di klausa WHERE untuk hanya mengembalikan pengguna dengan akun Twitter 3Memodifikasi Bagian dari Dokumen JSONAda beberapa fungsi MySQL untuk memodifikasi bagian dari dokumen JSON menggunakan notasi jalur. Ini termasuk
Karena itu Anda dapat menambahkan tag "teknis" ke buku mana pun yang sudah memiliki tag "JavaScript". _4Informasi lebih lanjutManual MySQL memberikan informasi lebih lanjut tentang tipe data JSON dan fungsi JSON terkait Sekali lagi, saya mendorong Anda untuk tidak menggunakan JSON kecuali benar-benar diperlukan. Anda bisa meniru seluruh database NoSQL yang berorientasi dokumen di MySQL, tetapi itu akan meniadakan banyak manfaat SQL, dan Anda juga dapat beralih ke sistem NoSQL yang sebenarnya. Yang mengatakan, tipe data JSON mungkin menghemat upaya untuk persyaratan data yang lebih tidak jelas dalam aplikasi SQL Bagikan Artikel IniCraig Buckler Craig adalah konsultan web lepas Inggris yang membangun halaman pertamanya untuk IE2. 0 pada tahun 1995. Sejak saat itu dia menganjurkan standar, aksesibilitas, dan praktik terbaik teknik HTML5. Dia membuat spesifikasi perusahaan, situs web, dan aplikasi online untuk perusahaan dan organisasi termasuk Parlemen Inggris, Parlemen Eropa, Departemen Energi & Perubahan Iklim, Microsoft, dan banyak lagi. Dia telah menulis lebih dari 1.000 artikel untuk SitePoint dan Anda dapat menemukannya di @craigbuckler Bagaimana cara mendapatkan data dari MySQL dalam format JSON?Mengekspor data MySQL ke JSON menggunakan fungsi CONCAT() dan GROUP_CONCAT() . Menggunakan kombinasi fungsi CONCAT() dan GROUP_CONCAT(), data dari string SQL dapat diubah menjadi format JSON. Lebih lanjut tentang penggunaan INTO OUTFILE dapat ditemukan di artikel Cara mengekspor data MySQL ke CSV.
Bagaimana cara mengekstrak data JSON dari kueri SQL?Cara mengekstrak nilai dari bidang JSON bertingkat di SQL . Postgres. Gunakan operator ->> untuk mengekstrak nilai sebagai teks, dan -> untuk mengekstrak objek JSON. pilih my_json_field ->> 'userId', my_json_field -> 'transaction' ->> 'id', my_json_field -> 'transaction' ->> 'sku' dari my_table; Pergeseran merah. . MySQL Bagaimana cara menanyakan kolom JSON di SQL?Untuk mengkueri data JSON, Anda dapat menggunakan T-SQL standar . Jika Anda harus membuat kueri atau melaporkan data JSON, Anda dapat dengan mudah mengonversi data JSON menjadi baris dan kolom dengan memanggil fungsi rowset OPENJSON. Untuk informasi selengkapnya, lihat Mengonversi Data JSON menjadi Baris dan Kolom dengan OPENJSON (SQL Server).
Bagaimana Anda mengekstrak nilai JSON?Untuk mengekstrak nama dan memproyeksikan properti dari string JSON, gunakan fungsi json_extract seperti pada contoh berikut. Fungsi json_extract mengambil kolom yang berisi string JSON, dan mencarinya menggunakan ekspresi mirip JSONPath dengan titik. notasi. JSONPath melakukan traversal pohon sederhana. |