2017-06-20 59 views
1

我想要刪除表中所有字段中某個字符串模式的所有事件。Sqlite - 如何使用通配符刪除字段中的子字符串

例如,查找所有出現的模式"<XY>*<Xy>",其中*表示任何可能的字符配置。我想只刪除那些子字符串,並保持字符串的其餘部分不變。

這是我想爲我的SQL命令用什麼例子,但當然,這並不工作:

UPDATE Table SET Field = replace(Field, '<XY>*<Xy>', '');

什麼解決的辦法?

回答

0

這裏是一個試圖拼接圍繞<XY>...</XY>標籤的選項:

UPDATE yourTable 
SET Field = SUBSTR(Field, 1, INSTR(Field, '<XY>') - 1) || 
      SUBSTR(Field, INSTR(Field, '</XY>') + 5) 
WHERE Field LIKE '%<XY>%</XY>%' 

它更新包含此模式的一切第一<XY>來之前的級聯和一切第二</XY>後到來領域。

請注意,我使用的是<XY>...</XY>而不是原來的樣子,因爲INSTR()不區分大小寫,並且兩個標籤都顯示爲相同的東西。

Demo

演示是MySQL,但sytnax幾乎是相同的SQLite的。

+0

我沒有正確地問我的問題,哈哈,但你確實回答了我所問的問題,並且我能夠用你的答案來做我其實想做的事情。謝謝! –

相關問題