2012-11-03 74 views
2

我有像这样的表的数据库SQLITE3:移除几乎重复行

表(COM1,COM2)

A || B 
B || A 
C || D 
D || B 
B || D 

如果我有2行:甲|| B和B || A,我想删除其中的一个(我不关心哪一个)。

因此获得:

A || B 
C || D 
D || B 

我读过许多询问重复行,但我不能找到这样的事情。谢谢你的帮助。

+0

如果您至少发布了自己的尝试,那么使用代码将会更容易。 – ghoti

回答

0

我觉得你的问题的解决方案应该是这样的:

SELECT 
    t1.val1,t1.val2 
FROM table AS t1 
JOIN table AS t2 ON (
    (t1.val1=t2.val2) AND (t1.val2=t2.val1) 
) WHERE t1.val1<=t1.val2 

其中是你的表的名称和VAL1VAL2是在表中的列名。

+0

sqlite3说:错误:没有这样的功能:strcmp – SomeoneMe

+0

我替换WHERE strcmp(t1.val1,t1.val2)<= 0与WHERE t1.val1 <= t1.val2,它的工作原理 – SomeoneMe

+0

对不起,我修好了现在...它应该工作(只是在我身边测试)。数据类型在sqlite中很棘手:-) – HlavacekMichal