我有一个mysql表,看起来像这样:
1 value1 value2 3534
2 value1 value1 8456
3 value1 value2 3566
4 value1 value3 7345
5 value2 value3 6734
我需要一个查询来选择具有不同的第2列和第3列的所有行,例如,我希望此示例的输出如下所示:
1 value1 value2 3534
2 value1 value1 8456
4 value1 value3 7345
5 value2 value3 6734
我已经找到了一些关于如何做的样本,但它们都在每个列上单独选择不同的 .
6 回答
假设第一列是唯一的,您可以这样做:
看到它在线工作:sqlfiddle
更新1
你最好用这个来对抗上面 .
演示
我说的原因是因为使用CONCAT,我没有得到 this case 的预期结果 . 第一个查询返回5行但是CONCAT返回4行,这是INCORRECT .
希望你明白我的意思 .
假设表中的列是(id,col2,col3,col4) .
或
实时工作示例
假设表中的列是
(id, col1, col2, col3)
,您可以:此查询确保column1和column2的组合是唯一的,同时选择第三列的最小值
对此最简单的查询是
使用group by方法返回额外的行,其中显式检查每个字段,尽管更长时间返回与count相同的no记录(Distinct ..)