Sqlite 为什么两个oposit查询返回相同的数据?
这些问题:Sqlite 为什么两个oposit查询返回相同的数据?,sqlite,Sqlite,这些问题: SELECT * FROM eloquaActual as ea WHERE exists (SELECT * FROM eloquaActual as eff WHERE (eff.Email_Address != ea.Email_Address)) 及 返回完全相同的数据。还请注意,当我将数据导入sqlite时,电子邮件地址列是唯一的,它向我显示了错误。我尝试导入的不是唯一的电子邮件。然后,我试图在电子邮件栏中找到任何重复的内容。当我执行上述查询时,它返回了所有数据。这意
SELECT * FROM eloquaActual as ea
WHERE exists (SELECT * FROM eloquaActual as eff
WHERE (eff.Email_Address != ea.Email_Address))
及
返回完全相同的数据。还请注意,当我将数据导入sqlite时,电子邮件地址列是唯一的,它向我显示了错误。我尝试导入的不是唯一的电子邮件。然后,我试图在电子邮件栏中找到任何重复的内容。当我执行上述查询时,它返回了所有数据。这意味着所有的行都是重复的
但后来我选择了email address=any email,只找到了一条记录。。。wtf
表结构:
CREATE TABLE "eloquaActual" ("Email_Address" VARCHAR, "Prizes_Oddset_7" VARCHAR)
之前我有电子邮件地址
唯一,但发生了错误
exists (SELECT * FROM eloquaActual as eff
WHERE (eff.Email_Address != ea.Email_Address))
这将检查ea
中是否存在与当前行电子邮件不同的电子邮件。
如果表中至少包含两封电子邮件,则会发生这种情况
exists (SELECT * FROM eloquaActual as eff
WHERE (eff.Email_Address = ea.Email_Address))
这将检查是否存在与当前行的电子邮件相同的电子邮件。
这将始终发生,因为行将匹配自身
要查找重复项,可以检查具有相同电子邮件但ID不同的行: 使用分组方式会更容易:
SELECT Email_Address,
COUNT(*)
FROM eloquaActual
GROUP BY Email_Address
HAVING COUNT(*) >= 2
向我们显示您表的结构和内容。表中有多少行,以及您有多少不同的电子邮件地址?如果你在这两个问题上都回答“至少2”就足够了,我不需要实际的数字。所有的电子邮件地址都应该是不同的、唯一的,并且有580000+行-这很有意义,谢谢,但是如果我没有任何ID怎么办?有一件事应该是独一无二的,那就是电子邮件,它显然不是,我必须找出其中哪些不是独一无二的。
SELECT *
FROM eloquaActual AS ea
WHERE EXISTS (SELECT *
FROM eloquaActual AS eff
WHERE eff.Email_Address = ea.Email_Address
AND eff.rowid != ea.rowid)
SELECT Email_Address,
COUNT(*)
FROM eloquaActual
GROUP BY Email_Address
HAVING COUNT(*) >= 2