我在SQLite数据库中有这个表:
-----------------------------
id | string |...other columns
-----------------------------
01 | AA |...
02 | AAB |...
03 | AB |...
04 | BAB |...
我需要做的是删除列“string”的单元格值包含在任何其他行中的所有行。
在上面的示例中,row id-1 string包含在row id-2 string中,row id-3 string包含在row id-2和id-4 string中。
所以最终的结果应该是:
-----------------------------
id | string |...other columns
-----------------------------
02 | AAB |...
04 | BAB |...
是否有简单的查询来执行此操作?
答案 0 :(得分:1)
您可以使用exists
(不区分大小写的):
delete from table
where exists (select * from table t where t.string like '%' || table.string || '%')
或instr
(区分大小写):
delete from table
where exists (select * from table t where instr(t.string, table.string) > 0)