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