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
Linda Hamiltonoriginal
2024-12-25 21:03:111058parcourir

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>

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

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

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

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