kris23
12.03.2010, 15:19:06
Witam!
Wydaje mi się to proste, ale nie mogę sobie poradzić:
Mam tabelę z tagami o następujących polach: `id`, `tag`, `uzycia` (nazwy pól chyba dość samowyjaśniające). Chcę pobrać 30 wierszy o najwyższej wartości pola `uzycia`, ale posortowanych wg pola `tag`. Banalne? Być może. Dodatkowa informacja: tabela zawiera znaki UTF-8. Próbowałem wyciągnąć 30 najwyższych i sortować przez array_multisort(), ale nie radzi on sobie z UTF-8.
Będę wdzięczny za każdą sugestię.
Pozdrawiam,
Krzysztof
wookieb
12.03.2010, 15:21:21
SELECT a.* FROM (SELECT * FROM tagi ORDER BY uzycia DESC LIMIT 30) a ORDER BY a.tag
phpion
12.03.2010, 15:21:23
SELECT t.* FROM (SELECT * FROM tabela ORDER BY uzycia DESC LIMIT 30) AS t ORDER BY t.tag ASC
@up:
darko
12.03.2010, 15:22:44
SELECT * FROM TABELA ORDER BY uzycia DESC, tag LIMIT 0,30
?
// edit
SELECT * FROM TABELA ORDER BY uzycia DESC, tag ASC LIMIT 0,30
kris23
12.03.2010, 15:30:57
@phpion: mam wrażenie, że Twój pomysł jest poprawny. Dziękuję!
@darko: Twój pomysł nie działa, sortuje wg `uzycia`, a jeśli dwa wiersze mają równą wartość to decyduje pole `tag`, a nie o to mi chodziło.