Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie ale nie ASC bądź DESC tylko przypadkowe
Forum PHP.pl > Forum > Bazy danych > MySQL
windman
Witam,

chciałbym posortować rekordy wg jednego pola "miasto" lecz nie rosnąco lub malejąco tylko przypadkowo...
Napierw wszystkie rekordy np. z Gdyni, potem z Warszawy, następnie z Krakowa itp.
Rekordy niejako powinny być pogrupowane wg miasta ale kolejność miast powinna być przypadkowa i za każdym razem inna.

Nie mogę sobie z tym poradzić.
piotrooo89
  1. SELECT * FROM `test` GROUP BY test_columna ORDER BY RAND( )
windman
Cytat(piotrooo89 @ 21.10.2009, 08:49:33 ) *
[SQL] pobierz, plaintext
  1. SELECT * FROM `test` GROUP BY test_columna ORDER BY RAND( )
[SQL] pobierz, plaintext

na to też wpadłem, tylko że to mi da po jednym rekordzie z każdego miasta (GROUP BY miasto) ja potrzebujuę wszystkie.

piotrooo89
to tak:
  1. SELECT * FROM `tes` WHERE test_col = "jakies_miasto" ORDER BY RAND( )
windman
Cytat(piotrooo89 @ 21.10.2009, 09:15:13 ) *
to tak:
  1. SELECT * FROM `tes` WHERE test_col = "jakies_miasto" ORDER BY RAND( )

No to otrzymam tylko rekordy dla miasta "jakies_miasto". Ja potrzebuję wszystkir rekordy z tabeli chodzi tylko o ich kolejność.
piotrooo89
to samo:
  1. SELECT * FROM `tes` ORDER BY RAND( )


powinno wystarczyć.
windman
Cytat(piotrooo89 @ 21.10.2009, 09:26:04 ) *
to samo:
  1. SELECT * FROM `tes` ORDER BY RAND( )
    powinno wystarczyć.

Przeczytałeś dokładnie co chcę osiągnąć? To co teraz proponujesz da mi wymieszane rekordy a ja chcę aby były one posortowane wg pola miasto, z tym że kolejność miast ma być przypadkowa!
nospor
  1. SELECT tabela.* FROM (SELECT pole FROM tabela GROUP BY pole ORDER BY RAND()) podsel
  2. LEFT JOIN tabela ON tabela.pole=podsel.pole


za "tabela" podstaw nazwę swojej tabeli
za "pole" podstaw nazwe pola, po którym chcesz grupować
windman
Cytat(nospor @ 21.10.2009, 09:41:35 ) *
[SQL] pobierz, plaintext
    <LI class=li1>SELECT tabela.* FROM (SELECT pole FROM tabela GROUP BY pole ORDER BY RAND()) podsel
  1. LEFT JOIN tabela ON tabela.pole=podsel.pole
[SQL] pobierz, plaintext za "tabela" podstaw nazwę swojej tabeli
za "pole" podstaw nazwe pola, po którym chcesz grupować


wiekie dzięki, właśnie o to chodziło... jednakże jeszcze jedno jest mi do szczęścia potrzebne...
chciałbym aby kolejność rekordów dla danego miasta też była przypadkowa.

Mam już przypadkową kolejność miast - nazwijmy rekordy dla danego miasta grupą.
Rekordy z każdej grupy powinny być przypadkowo posortowane.


nospor
no to juz w php sobie posortuj te grupy
windman
Cytat(nospor @ 21.10.2009, 10:01:26 ) *
no to juz w php sobie posortuj te grupy


w mysql niewykonalne?

Jeszcze raz dzięki!
nospor
Cytat
w mysql niewykonalne?
Jakoś na chwilę obecną nic mi nie przychodzi do głowy.
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.