Maison >base de données >tutoriel mysql >Partage d'expérience XML pour les opérations de requête de base de données MySQL

Partage d'expérience XML pour les opérations de requête de base de données MySQL

黄舟
黄舟original
2017-08-01 11:26:548410parcourir

Mysql a des fonctions intégrées pour manipuler le XML. Il s'agit respectivement des fonctions ExtractValue() et UpdateXML().

Syntaxe :

EXTRACTVALUE (fiedname, XPathstring);

Le premier paramètre : fiedname est au format String, qui est le nom du champ dans la table. Le deuxième paramètre : XPathstring (chaîne au format XPath), si vous. ne comprenez pas la syntaxe XPath, vous pouvez trouver des tutoriels sur Internet. Fonction : Renvoie la chaîne contenant la valeur interrogée à partir du XML cible

UPDATEXML (fiedname, XPathstring, new_value) ; Le premier paramètre : fiedname est au format String, qui est le nom du champ dans la table. : XPathstring (chaîne au format XPath)

Le troisième paramètre : new_value, format String, remplace les données qualifiées trouvées Fonction : modifie la valeur du nœud qualifié dans le document

Tutoriel vidéo MySQL recommandé associé : "Tutoriel MySQL"

1. Nous créons d'abord une table de test.

CREATE TABLE `testtable` (   `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1

Partage dexpérience XML pour les opérations de requête de base de données MySQL

2. Ajoutez ensuite un enregistrement à la table de test. Enregistré au format XML.

Partage dexpérience XML pour les opérations de requête de base de données MySQL

3 Nous utilisons d'abord la fonction EXTRACTVALUE pour connaître le contenu du nœud nommé Zhang San. Vous pouvez voir le contenu du nœud Zhang San que nous avons trouvé dans la zone de sortie ci-dessous. Le format XPath est le suivant :

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'

Partage dexpérience XML pour les opérations de requête de base de données MySQL

4. . Nous avons maintenant le nœud de classe de requête Les valeurs de tous les nœuds de nom ci-dessous.

 extractvalue(testxml,'/Student/Class/Name'

Partage dexpérience XML pour les opérations de requête de base de données MySQL

5. Ensuite, nous utilisons la fonction updatexml pour modifier le contenu du nœud XML.

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
,把zhangsan节点内容换为updatename。

Partage dexpérience XML pour les opérations de requête de base de données MySQL

6 D'après les résultats ci-dessus, nous pouvons voir que la structure XML a un nœud de nom de moins après avoir utilisé updatexml. . Il nous suffit d'ajouter la valeur mise à jour au nœud lors du remplacement.

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')

Partage dexpérience XML pour les opérations de requête de base de données MySQL

7. Utilisez l'instruction Update pour mettre à jour le contenu de la base de données.

UPDATE testtableSET testxml=  Updatexml(testxml,&#39;/Student/Class/Name[self:text()="zhangsan"]&#39;,&#39;<Name>updatename</Name>&#39;)

Partage dexpérience XML pour les opérations de requête de base de données MySQL

Partage dexpérience XML pour les opérations de requête de base de données MySQL

Notes

À l'aide de UpdateXml, nous venons de modifier le contenu du champ de recherche, Le la base de données n'est pas mise à jour. Si vous devez mettre à jour la base de données, vous devez la mettre à jour avec l'instruction de mise à jour

.

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