[英]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.