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
Libérer: 2024-12-20 13:44:10
original
620 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion

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)')
Copier après la connexion

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>')
Copier après la connexion

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
Copier après la connexion

Sortie

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

en
fr
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal