2013-06-23 3 views
0

Как я могу сделать заказ на этот запрос?Mysql порядок по группам и ошибка

У меня проблема при попытке добавить orderby в sql-запрос.

оригинальный запрос:

SELECT SQL_CALC_FOUND_ROWS `client_data`.userid,users.username as name, 
    users.guid, `client_data`.fname, 
    `client_data`.country,`client_data`.city, 
    DATE_FORMAT(`client_data`.startdate, '%d-%m-%Y') as startdate, 
    DATE_FORMAT(`client_data`.enddate, '%d-%m-%Y') as enddate, `client_data`.registerdate, 
    `client_data`.agents, `client_data`.phone1, `client_data`.phone2, `client_data`.email, 
    `client_data`.officeName, `client_data`.address, 
    users.password, `client_data`.private, 
    users.`machineid` 
FROM `client_data` 
join users 
    on (users.iid=`client_data`.userid) 
GROUP BY `client_data`.userid 
LIMIT 0, 25 

И я добавляю "ORDER BY«client_data'.userid" для запроса, то он не работает. Новый запрос:

SELECT SQL_CALC_FOUND_ROWS `client_data`.userid,users.username as name, users.guid, 
    `client_data`.fname, `client_data`.country,`client_data`.city, 
    DATE_FORMAT(`client_data`.startdate, '%d-%m-%Y') as startdate, 
    DATE_FORMAT(`client_data`.enddate, '%d-%m-%Y') as enddate, 
    `client_data`.registerdate, `client_data`.agents, `client_data`.phone1, `client_data`.phone2, 
    `client_data`.email, `client_data`.officeName, 
    `client_data`.address, users.password, 
    `client_data`.private, users.`machineid` 
FROM `client_data` 
join users 
    on (users.iid=`client_data`.userid) 
GROUP BY `client_data`.userid 
LIMIT 0, 25 
ORDER BY 'client_data'.userid 

Я получаю код ошибки:

У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «ORDER BY„client_data'.userid“на линии 5Failed работает

Как я могу добавить заказ

ответ

6

В MySQL, LIMIT приходит после предложения ORDER BY, так меняется:

GROUP BY `client_data`.userid LIMIT 0, 25 ORDER BY 'client_data'.userid 

To:

GROUP BY `client_data`.userid ORDER BY `client_data`.userid LIMIT 0, 25 
+1

Кроме того, 'ORDER BY 'client_data'.userid' должен быть' ORDER BY \ client_data \ '.userid' - имя таблицы должно быть указано с обратными окнами (или вообще не), а не одинарные кавычки. –

+0

Хороший улов, обновленный ответ, чтобы соответствовать группе с обратными окнами. –