Maison >base de données >tutoriel mysql >Comment puis-je extraire les valeurs d'attribut des données XML à l'aide de SQL ?

Comment puis-je extraire les valeurs d'attribut des données XML à l'aide de SQL ?

DDD
DDDoriginal
2024-12-20 13:44:10712parcourir

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

Obtention de valeurs d'attribut à partir de données XML dans SQL

Lorsque vous travaillez avec des données XML dans des tables de base de données, il peut être nécessaire de récupérer la valeur de attributs spécifiques dans le contenu XML. Un défi possible consiste à extraire la valeur d'un attribut lorsque les données sont stockées en tant que type de données XML.

Format de données XML

Considérez l'extrait XML suivant stocké dans une base de données :

<email>
  <account language="en" ... />
</email>

Interrogation de l'attribut Valeur

Pour récupérer la valeur de l'attribut "langue", vous pouvez utiliser XQuery dans votre instruction SQL. XQuery est un langage de requête XML spécialement conçu pour interroger et traiter des données XML.

Expression XQuery

L'expression XQuery suivante récupère la valeur de l'attribut "langue" du Données XML :

/email/account/@language

Requête SQL

Incorporation du XQuery dans votre requête SQL, vous pouvez obtenir la valeur de l'attribut comme suit :

declare @xml xml =
'<email>
  <account language="en" />
</email>'

select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')

Exemples supplémentaires

Supposons que vous ayez une table nommée "@t" contenant plusieurs lignes XML :

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

Pour extraire les valeurs d'attribut de chaque ligne, vous pouvez exécuter ce qui suit requête :

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t

Sortie

La sortie de la requête ci-dessus sera une liste de valeurs d'attribut :

en
fr

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn