Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] sortowanie sortowania
Forum PHP.pl > Forum > Przedszkole
Seraph
Witam, pobieram z tabeli selectem:
  1. SELECT name, COUNT(*) FROM ... GROUP BY name ORDER BY COUNT(*) DESC LIMIT 10

i teraz mam wszystkie wyniki ustawione wg malejącego COUNTa.
Potrzebuję jeszcze wyniki z tego selecta (czyli te 10 z największym COUNTem) wyświetlić alfabetyczne. Jak mogę to zrobić?
Próbowałem robić select z selecta
  1. SELECT name,cnt FROM (SELECT count(*)AS cnt,name FROM search_result GROUP BY name ORDER BY cnt DESC LIMIT 10 ) ORDER BY name;

ale wtedy rzuca mi błędem:
  1. Every derived TABLE must have its own alias


I czy w ogóle moja koncepcja na pobranie tego z bazy jest dobra, czy da się to lepiej/łatwiej/szybciej zrobić w jakiś inny sposób.
AxZx
po prostu po przecinku podaj drugi warunek sortowania

  1. SELECT name, COUNT(*) FROM ... GROUP BY name ORDER BY COUNT(*) DESC, name LIMIT 10
phpion
Spróbuj w ten sposób ale nie gwarantuję, że zadziała:
  1. SELECT name, COUNT(*) FROM tabela GROUP BY name ORDER BY COUNT(*) DESC, name ASC LIMIT 10


Aj, ~AxZx był szybszy smile.gif
Seraph
Tylko, że w wypadku o którym wy mówicie dostanę np:

bbb (5) ccc(5) eee(5) ddd(4) aaa(3),

mi natomiast chodzi o to, aby te wyniki z 1 selecta były później posortowane jedynie wg nazwy, bez zwracania uwagi na ich COUNT.
Wieviór
Wytłumacz co chcesz zrobić, bo ja nie do końca kumam co chcesz osiągnąć, łatwiej będzie Ci wtedy pomóc ;]
Arrowb
  1. SELECT name, COUNT(*) FROM ... GROUP BY name ORDER BY name DESC LIMIT 10
legorek
Sprawdź:

  1. SELECT name,cnt FROM (SELECT count(*)AS cnt,name FROM search_result GROUP BY name ORDER BY cnt DESC LIMIT 10 ) AS t1 ORDER BY name;


I zastanów się, czy nie prosciej bedzie Ci posortować to w PHP.
Wieviór
Cytat(legorek @ 10.09.2007, 17:01:04 ) *
I zastanów się, czy nie prosciej bedzie Ci posortować to w PHP.


Słuszna uwaga, najpierw wyciągnij raz sortując przez zapytanie SQL'a, wrzuć do tablicy i potem sortuj według drugiego.
Seraph
Ok, zapytanie Legorka sprawdza się dobrze.
Ale dlaczego radzicie najpierw wziąć zapytanie z bazy i potem przepuścić przez php? Ponoć w bazie takie operacje wykonuje się szybciej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.