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
2 番目の並べ替え列は、同じ最初の列を持つ行がある場合にのみ使用されますが、type
区別しているため、決して起こり得ません。
あなたが使用することができますGROUP BY
SELECT type , price FROM products GROUP BY type ORDER BY type , price
^^^^^^^^^^^^----this will select distinct type
GROUP BY
を使用するのではなく、column1 を使用する必要がありますDISTINCT
。また、価格に対して集計関数を使用する必要があります。
MySql の集計のリストはこちら: GROUP BY (集計) 関数
例: 平均価格を使用してすべての異なるタイプを取得するには:
SELECT type, AVG(price) FROM products GROUP BY type ORDER BY type
何らかの方法で価格を集計する必要がない場合は、MySql が何かを返したとしても予測可能な値にはならないので、省略したほうがよいでしょう。