检查两个单独行的列,如果相同则返回true

时间:2014-04-11 11:01:46

标签: php mysql

我想知道是否可以对mysql端(来自查询)进行检查,以查看是否有两个不同的唯一ID,其中一些列匹配。已经在php中解决了它,但我希望尽可能简化它。

结构说是这个

product | attribute_1 | attribute_2 | attribute_3
-------------------------------------------------
1         10             20            30
2         10             20            31
3         10             20            30

因此1-3将返回true,而1-21-3

则返回false

3 个答案:

答案 0 :(得分:1)

SELECT atribute_1, atribute_2, atribute_3, count(*) as `Count of duplicated rows`  
FROM  YOUR_TABLE group by atribute_1, atribute_2, atribute_3

答案 1 :(得分:1)

你可以这样做:

SELECT 
  (SELECT attribute1, attribute2, attribute3 FROM t WHERE product=$id1) 
  = 
  (SELECT attribute1, attribute2, attribute3 FROM t WHERE product=$id2)

-i.e。检查关于平等的元组。例如,您的$id1$id2来自应用程序。

答案 2 :(得分:0)

你也可以使用它:

select exists (
 select 1 from TableName t1, TableName t2
 where 
 t1.`Attribute_1` = t2.`Attribute_1` and
 t1.`Attribute_2` = t2.`Attribute_2` and
 t1.`Attribute_3` = t2.`Attribute_3` and
 t1.`Product` = $id1 and
 t2.`Product` = $id2
)