SQL Where 子句:所有字段都相等,除了一个

SQL Where clause: all fields equal, except one

我可以得到一个条目,它在所有字段中都相等,除了已定义的吗?

例如:

SELECT a.* 
FROM table_name a 
INNER JOIN table_name b 
   on (a.price = b.price 
   AND a.quantity = b.quantity 
   AND {all the remaining params}) 
   AND a.id <> b.id

我需要找到相同的条目,除了它的 ID(重复条目)

将您的 "AND a.id <> b.id" 更改为 "WHERE a.id <> b.id",这应该适合您。

您可以将 SELECTGROUP BY 子句一起使用。 例如,如果您有一个名为 names 的 table,其中有一列 name,您要检查该列是否重复。你可以这样做:

select name, count(*) c from names group by name having c > 1;

这还将 return 一个额外的列,指示重复值在行中出现的次数。

希望对您有所帮助。