SQLite - 如何删除其他行中包含字符串单元格值的行?

时间:2015-04-25 23:34:15

标签: sql sqlite

我在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 |...

是否有简单的查询来执行此操作?

1 个答案:

答案 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)