Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Nilai Atribut daripada Data XML dalam SQL?
Mendapatkan Nilai Atribut daripada Jenis Data XML dalam SQL
Apabila bekerja dengan data XML dalam SQL, selalunya perlu mengekstrak nilai atribut tertentu . Sebagai contoh, kita mungkin perlu mendapatkan nilai atribut "bahasa" daripada XML berikut:
<email> <account language="en" ... /> </email>
Untuk mencapai ini, kita boleh memanfaatkan ungkapan XQuery. Berikut ialah versi diubah suai bagi pertanyaan SQL anda menggunakan XQuery:
SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM Mail
Dalam pertanyaan ini, kami menggunakan fungsi .value() untuk menanyakan dokumen XML yang diwakili oleh pembolehubah "@xml". Ungkapan XQuery "/email/account/@language" menentukan laluan ke atribut yang diingini dan "[1]" memastikan kami mendapatkan semula nilai atribut padanan pertama (dan sahaja).
Sebagai alternatif , anda boleh menggunakan ungkapan jadual berikut untuk mendapatkan semula nilai atribut:
declare @t table (m xml) insert @t values ('<email><account language="en" /></email>'), ('<email><account language="fr" /></email>') select m.value('(/email/account/@language)[1]', 'nvarchar(max)') from @t
Pendekatan ini menyediakan penyelesaian yang lebih ringkas dan berskala untuk mendapatkan semula nilai atribut daripada berbilang dokumen XML dalam jadual. Output pertanyaan ialah:
en fr
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Atribut daripada Data XML dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!