Сортировка вместе с уникальностью MySQL

Программирование, которое не связано с API.
Ответить
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Сортировка вместе с уникальностью MySQL

Сообщение manticore »

Как можно сначала отсортировать, а потом выбрать по уникальности значения?

Пытался сделать так:

Код: Выделить всё

SELECT `id` FROM `payments` GROUP BY `userid` ORDER BY `monets` DESC
Но тогда он берет не самые большие значения monets, т.к сначала идет выборка по уникальности, а потом сортировка.
А если поменять местами, то говорит что так невозможно. Так как это обойти?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Сортировка вместе с уникальностью MySQL

Сообщение Serge »

По идее

Код: Выделить всё

SELECT `id`, MAX(`monets`) FROM `payments` GROUP BY `user_id`
выберет максимальное для каждого пользователя. Если это имелось в виду...
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Сортировка вместе с уникальностью MySQL

Сообщение manticore »

Serge
Не помогло, взял человека c определенным ID и с монетами 2002, хотя у игрока есть еще запись с монетами 5821.
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Сортировка вместе с уникальностью MySQL

Сообщение manticore »

Код: Выделить всё

SELECT `userid`,MAX( `monets`) FROM `payments` GROUP BY `userid` ORDER BY MAX( `monets`) DESC 
Но только как мне в PHP взять число MAX(`monets`)?

Вот так работает с обычным полем:

Код: Выделить всё

$user['userid']
А как для максимального числа, я не знаю. Пробовал так, но не работает:

Код: Выделить всё

$user['MAX(monets)']
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Сортировка вместе с уникальностью MySQL

Сообщение Serge »

1) Загнать запрос в phpmyadmin и посмотреть правильное название возвращаемого поля
2) Вывести весь массив при помощи print_r
3) При выборке сделать псевдоним (AS max_monets)
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Сортировка вместе с уникальностью MySQL

Сообщение manticore »

Serge
Просто вывел с помощью print_r и понял что правильным будет так:

Код: Выделить всё

$user['MAX(`monets`)']
Спасибо вам ;)
Ответить