我如何同时选择 column1(type) 和 column2(price) 但仅区分 column1(type)?
<?php
$query ="SELECT type , price FROM products ORDER BY type , price";
?>
使用GROUP BY
.
SELECT type, price
FROM products
GROUP BY type
ORDER BY type
这不是严格合法的 SQL,因为GROUP BY
通常要求所有非分组列都是聚合函数,但 MySQL 允许它作为扩展。它将price
从所有具有相同type
.
price
加入这个条款是没有意义的ORDER BY
。仅当存在具有相同第一列的行时才使用第二个排序列,但因为我们正在type
区分这永远不会发生。
您需要GROUP BY
column1 而不是使用DISTINCT
. 您还需要对价格使用聚合函数。
MySql 的聚合列表:GROUP BY (Aggregate) Functions
例如,要获得具有平均价格的所有不同类型,请使用:
SELECT type, AVG(price) FROM products GROUP BY type ORDER BY type
如果您不需要以某种方式汇总价格,那么您可能最好将其排除在外,因为即使 MySql 会返回一些东西,它也不会是一个可预测的值
您可以使用GROUP BY
SELECT type , price FROM products GROUP BY type ORDER BY type , price
^^^^^^^^^^^^----this will select distinct type