Maison > base de données > tutoriel mysql > Comment puis-je récupérer des valeurs d'attribut à partir de données XML dans SQL ?

Comment puis-je récupérer des valeurs d'attribut à partir de données XML dans SQL ?

Linda Hamilton
Libérer: 2024-12-25 21:03:11
original
987 Les gens l'ont consulté

How Can I Retrieve Attribute Values from XML Data in SQL?

Récupération des valeurs d'attribut du type de données XML en SQL

Lorsque vous travaillez avec des données XML en SQL, il est souvent nécessaire d'extraire les valeurs d'attributs spécifiques . Par exemple, nous devrons peut-être obtenir la valeur de l'attribut « langue » à partir du XML suivant :

<email>
  <account language="en" ... />
</email>
Copier après la connexion

Pour y parvenir, nous pouvons exploiter les expressions XQuery. Voici une version modifiée de votre requête SQL utilisant XQuery :

SELECT @xml.value('(/email/account/@language)[1]', 'nvarchar(max)') FROM Mail
Copier après la connexion

Dans cette requête, nous utilisons la fonction .value() pour interroger le document XML représenté par la variable "@xml". L'expression XQuery "/email/account/@langue" spécifie le chemin d'accès à l'attribut souhaité, et le "[1]" garantit que nous récupérons la valeur du premier (et unique) attribut correspondant.

Alternativement , vous pouvez utiliser l'expression de tableau suivante pour récupérer les valeurs d'attribut :

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

Cette approche fournit une solution plus concise et évolutive pour récupérer les valeurs d'attribut de plusieurs documents XML dans un tableau. Le résultat de la requête sera :

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal