2017-02-02 6 views
-1

Ich habe doppelten Eintrag in meiner XML-Spalte in meiner SQL-Tabelle siehe Schlüssel material8.Ich entferne einen Eintrag.Ich versuche unten Abfrage seine Beseitigung beider. Gibt es eine Möglichkeit, ich kann nur einen Eintrag entfernen .entfernen doppelten Eintrag in Xml in Mysql

Update mytable set xml = replace (xml, "<Book key=\"material8\" active=\"true\" displayOrder=\"5\" />", "") where id = 9 and type_key="mykey1"; 


<?xml version="1.0" encoding="UTF-8"?> 
<Type key="test1" publicKey="test2" > 
    <UIProperties> 
     <label locale="en_US">My book</label> 
    </UIProperties> 
    <Books> 
     <Book key="material1" active="true" displayOrder="0" > 
      <UIProperties> 
       <label locale="en_US">My Books</label> 
      </UIProperties> 
     </Book> 
     <Book key="material2" /> 
     <Book key="material3" active="true" displayOrder="3" > 
      <Pages> 
       <Page key="material4" active="true" displayOrder="0" /> 
       <Page key="material5" active="true" displayOrder="1" /> 
      </Pages> 
     </Book> 
     <Book key="material6" active="true" displayOrder="4" /> 
     <Book key="material7" active="true" displayOrder="2" /> 
     <Book key="material8" active="true" displayOrder="5" /> 
     <Book key="material8" active="true" displayOrder="5" /> 
    </Books> 
    <Attributes> 
     <Attribute key="desc" /> 
     <Attribute key="date1" /> 
     <Attribute key="date2" /> 
    </Attributes> 
</Type> 
+1

Ersetzen " \ r \ n " von "" – Veve

+0

Haben Sie meine Lösung gesehen? Hat es dir geholfen? – Veve

Antwort

0

Eine einfache Lösung ist 2 Bücher auf 1 statt 1 zu keinem ersetzen:

UPDATE mytable 
SET xml = REPLACE(xml, "<Book key=\"material8\" active=\"true\" displayOrder=\"5\" /><Book key=\"material8\" active=\"true\" displayOrder=\"5\" />", "<Book key=\"material8\" active=\"true\" displayOrder=\"5\" />") 
WHERE id = 9 
AND type_key="mykey1"; 
Verwandte Themen