检查所有行都相同

时间:2015-09-16 07:21:18

标签: mysql sql select

我必须检查所有行是否相同。

我的例子:

| column1 | column2 | column3 | column4 | column5 | column6 |
| Value 1 | Value 2 | Value 3 | Value 4 | Value 5 | Value 6 |
| Value 1 | Value 2 | Value 3 | Value 4 | Value 5 | Value 6 |
| Value 1 | Value 2 | Value 3 | Value 4 | Value 5 | Value 6 |
| Value 1 | Value 2 | Value 3 | Value 4 | Value 5 | Value 6 |

是否有任何函数可以直接执行此操作,而无需运行任何类型的循环

我可以使用循环来完成此操作,但想知道是否有更好的方法而不使用列名

2 个答案:

答案 0 :(得分:2)

您可以计算不同组合的数量。如果它不止一个,并非所有行都相同:

SELECT COUNT(DISTINCT column1, column2, column3, column4, column5, column6)
FROM   mytable

答案 1 :(得分:2)

没有这样的功能。然而,不应该涉及循环机制。相反,您可以运行一个select语句,根据所有列进行分组,然后获取所有组的计数:

select count(s.cntAll)
from (
     select count(*) as cntAll
     from yourTable
     group by column1, column2, column3, column4, column5, column6
) s

如果计数(s.cntAll)= 1,则验证行完全相同。