Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit SQL Attributwerte aus XML-Daten extrahieren?

Wie kann ich mit SQL Attributwerte aus XML-Daten extrahieren?

DDD
DDDOriginal
2024-12-20 13:44:10666Durchsuche

How Can I Extract Attribute Values from XML Data Using SQL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn