2

私は次のSQLを持っています:

SELECT `id` FROM `exchange` WHERE `photo` = 1 ORDER BY `id` DESC LIMIT 18

location個別の値のみを取得するにはどうすればよいですか?

たとえば、これを実行してもエラーが返されます。

SELECT `id`, distinct(`location`) FROM `exchange` WHERE `photo` = 1 ORDER BY `id` DESC LIMIT 18

表の例:

id    location

1        7
2        8
3        4
4        4
5        2
6        32

結果の例(LIMIT 5の場合):

6,5,4,2,1

4

1 に答える 1

1

DISTINCT各列の値ではなく、行全体に対して機能します。列を削除するIDと、一意の場所になります。

SELECT distinct `location`
FROM `exchange` 
WHERE `photo` = 1 
ORDER BY `id` DESC 
LIMIT 18

更新1

MAX()のようなAGGREGATE FUNCTIONを使用して、それらを。でグループ化できます。これをもう一度試してください、ID

SELECT location, MAX(ID) ID
FROM exchange
GROUP BY location
于 2012-09-20T00:54:40.903 に答える