我有一个包含多个记录和多列的表,如:
Name |Color |Price |Description |Code
-------------------------------------------------------------
Item1 |Blue |$15.00 |ABCD |Code1
Item2 |Blue |$25.00 |ABCD |Code2
Item3 |Blue |$35.00 |ABCD |Code2
Item4 |Blue |$15.00 |ABCD |Code1
Item5 |Blue |$15.00 |ABCD |Code1
我希望通过使用查询获得在所有记录中具有相同值的列,例如
Color |Description
------------------------------------
Blue |ABCD
Blue |ABCD
Blue |ABCD
Blue |ABCD
Blue |ABCD
有没有简单的方法呢?我一直在考虑如何实现这一目标,但到目前为止还没有成功。任何人都可以帮我这样做吗?谢谢!
答案 0 :(得分:0)
在mysql(和oracle)中,你可以使用subselect .. group bu和
select * from my_table
where (color, decription) in (select color, description
from my_table
group by color, description
having count(*) >1)
否则,如果你不知道哪个col列符合标准,你就可以建立一个dinamic select来测试每一列。
select my_column from my_table
group by my_column
having count(*) >1
如果adn count(*)的相关select .. group> 1,则表示您已重复值