2010-11-16 4 views
0

J'ai une base de données mySql, et il a un champ pour chaque entrée appelée xml, qui contient du XML. Je voudrais savoir s'il existe une syntaxe pour sélectionner des valeurs XML comme les champs normaux. Par exemple si je voulais sélectionner toutes les entrées avec la date du 21/11/2010 j'essaye quelque chose comme ceci, mais la syntaxe est fausse, puisque je ne sais pas comment bien travailler avec xml dans mySql.mySql OERE `xml <date>` = '11/21/2010 '

SELECT * 
    FROM `table` 
WHERE `xml<date>` = '11/21/2010' 

Idéalement, je voudrais le comparer à un autre champ:

SELECT * 
    FROM `table` 
WHERE `xml<date>` != `date` 

Répondre

1

Vous pouvez utiliser la fonction ExtractValue avec une expression XPath pour obtenir votre champ désiré:

SELECT * 
FROM `table` 
WHERE ExtractValue(xml,'/a/suitable/xpath/expression') != `date` 
+0

parfait, Merci! – SketchBookGames