如何选择column1和column2但仅限于column1

时间:2013-06-27 19:02:45

标签: mysql distinct

我如何选择column1(type)和column2(price),但只选择column1(type)?

<?php
$query ="SELECT type , price FROM products ORDER BY type , price";
?>

3 个答案:

答案 0 :(得分:2)

使用GROUP BY

SELECT type, price
FROM products
GROUP BY type
ORDER BY type

这不是严格合法的SQL,因为GROUP BY通常要求所有非分组列都是聚合函数,但MySQL允许它作为扩展。它将从具有相同price的所有行中选择任意type

price置于ORDER BY条款中是没有意义的。第二个排序列仅在存在具有相同第一列的行时使用,但由于我们将type区分开来,这是不可能发生的。

答案 1 :(得分:0)

您可以使用GROUP BY

SELECT type , price FROM products GROUP BY type ORDER BY type , price
                                  ^^^^^^^^^^^^----this will select distinct type

some docs about group by

答案 2 :(得分:0)

您需要GROUP BY column1而不是DISTINCT。您还需要在价格上使用聚合函数。

MySql的聚合列表:GROUP BY (Aggregate) Functions

e.g。要以平均价格使用所有不同类型:

SELECT type, AVG(price) FROM products GROUP BY type ORDER BY type

如果您不需要以某种方式汇总价格,那么您可能最好将其遗漏,因为即使MySql将返回某些内容,它仍然不会是可预测的值

相关问题