-1

我如何同时选择 column1(type) 和 column2(price) 但仅区分 column1(type)?

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

3 回答 3

2

使用GROUP BY.

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

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

price加入这个条款是没有意义的ORDER BY。仅当存在具有相同第一列的行时才使用第二个排序列,但因为我们正在type区分这永远不会发生。

于 2013-06-27T19:06:10.087 回答
0

您需要GROUP BYcolumn1 而不是使用DISTINCT. 您还需要对价格使用聚合函数。

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

例如,要获得具有平均价格的所有不同类型,请使用:

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

如果您不需要以某种方式汇总价格,那么您可能最好将其排除在外,因为即使 MySql 会返回一些东西,它也不会是一个可预测的值

于 2013-06-27T19:09:09.503 回答
0

您可以使用GROUP BY

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

一些关于 group by 的文档

于 2013-06-27T19:04:57.777 回答