簡體   English   中英

Sqlite - 如何使用通配符刪除字段中的子字符串

[英]Sqlite - How to remove substring in a field using wildcards

我想刪除表中所有字段的所有出現的字符串模式。

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

這是我想用作SQL命令的一個示例,但當然這不起作用:

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

解決辦法是什么?

這是一個嘗試拼接<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()不區分大小寫,並且兩個標記看起來都是一樣的。

演示

該演示適用於MySQL,但sytnax幾乎與SQLite完全相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM