Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Nilai Atribut daripada Data XML dalam SQL?

Bagaimanakah Saya Boleh Mendapatkan Nilai Atribut daripada Data XML dalam SQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 21:03:111036semak imbas

How Can I Retrieve Attribute Values from XML Data in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn