我想在表格的所有字段中删除所有出现的某种字符串模式。
例如,查找模式"<XY>*<Xy>"
的所有匹配项,其中*
表示任何可能的字符配置。我想删除那些子串并保持字符串的其余部分完好无损。
这是我想用作SQL命令的示例,但当然这不起作用:
UPDATE Table SET Field = replace(Field, '<XY>*<Xy>', '');
解决方案是什么?
答案 0 :(得分: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()
不区分大小写,并且两个标记看起来都是一样的。
该演示适用于MySQL,但sytnax几乎与SQLite相同。