Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit SQL Attributwerte aus XML-Daten extrahieren?
Erhalten von Attributwerten aus XML-Daten in SQL
Beim Arbeiten mit XML-Daten in Datenbanktabellen kann es erforderlich sein, den Wert von abzurufen spezifische Attribute innerhalb des XML-Inhalts. Eine mögliche Herausforderung besteht darin, den Wert eines Attributs zu extrahieren, wenn die Daten als XML-Datentyp gespeichert werden.
XML-Datenformat
Betrachten Sie den folgenden XML-Ausschnitt, der in einer Datenbank gespeichert ist :
<email> <account language="en" ... /> </email>
Abfragen des Attributwerts
Zum Abrufen Wenn Sie den Wert des Attributs „Sprache“ verwenden, können Sie XQuery in Ihrer SQL-Anweisung verwenden. XQuery ist eine XML-Abfragesprache, die speziell für die Abfrage und Verarbeitung von XML-Daten entwickelt wurde.
XQuery-Ausdruck
Der folgende XQuery-Ausdruck ruft den Wert des Attributs „Sprache“ aus dem ab XML-Daten:
/email/account/@language
SQL-Abfrage
Einbindung der Wenn Sie den XQuery-Ausdruck in Ihre SQL-Abfrage einfügen, können Sie den Attributwert wie folgt erhalten:
declare @xml xml = '<email> <account language="en" /> </email>' select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
Zusätzliche Beispiele
Angenommen, Sie haben eine Tabelle mit dem Namen „@t“, die Folgendes enthält: mehrere XML-Zeilen:
insert @t values ('<email><account language="en" /></email>'), ('<email><account language="fr" /></email>')
Um die Attributwerte aus jeder Zeile zu extrahieren, können Sie Folgendes ausführen Abfrage:
select m.value('(/email/account/@language)[1]', 'nvarchar(max)') from @t
Ausgabe
Die Ausgabe der obigen Abfrage ist eine Liste von Attributwerten:
en fr
Das obige ist der detaillierte Inhalt vonWie kann ich mit SQL Attributwerte aus XML-Daten extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!