Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Kolejnosc wybranych danych z bazy
Piotr_BB
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 6.01.2008

Ostrzeżenie: (0%)
-----


Witajcie, chcialbym rozwiazac pewien problem, chodzi o kolejnosc wyciagnietych danych z bazy. Realizujac to wszystko chce po prostu uzyskac dana kolejnosc wykonujac jedno zapytanie.

Przy takim zapytaniu:

  1. SELECT * FROM bb WHERE id = 3 OR id = 4 OR id = 1 OR id = 2


Majac dane w tabeli w kolejnosci, bez sorta

Kod
id 1
id 2
id 3
id 4


otrzymuje wyniki: 1, 2, 3, 4, gdzie jak idzie zauwazyc chcialbym uzyskac inna kolejnosc. Any tips?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
morbic
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 29
Dołączył: 13.12.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM bb WHERE id IN (1,2,3,4) ORDER BY id DESC


ORDER BY id DESC <----
Go to the top of the page
+Quote Post
Cienki1980
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Sortowanie DESC i ASC posortuje wyniki tak :
Kod
1
2
3
4
....
4
3
2
1

Z tego co autor napisał wnioskuję, że chce mieć wynik w postaci :
Kod
3
4
1
2

Z mojej wiedzy nie ma możliwości posortowania w ten sposób za pomocą zwykłego zapytania SQL.

EDIT do poniższego:
Na takie zapytanie bym nie wpadł .. jak widać można.

Ten post edytował Cienki1980 22.07.2011, 13:31:42
Go to the top of the page
+Quote Post
kefirek
post
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM bb WHERE id IN (1,2,3,4) ORDER BY id = 3 DESC, id = 4 DESC, id = 1 DESC, id = 2 DESC


Ten post edytował kefirek 22.07.2011, 13:24:31
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Słowo kluczowe: ORDER BY FIELD
Go to the top of the page
+Quote Post
Piotr_BB
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 6.01.2008

Ostrzeżenie: (0%)
-----


Dzieki za odpowiedzi.

@kefirek niezle rozwiazanie (IMG:style_emoticons/default/smile.gif) tylko czy teraz Twoje rozwiazanie plus oprawa w PHP bedzie mniej obciazac server co do calosci realizacji tej czesci zadania nizeli normalne wyciagniecie danych z bazy i wyswietlenie ich wzgledem offsetow wg przygotowanej juz tablicy z danym potrzebnym sortowaniem?

co do opcji @thek to chyba dosc optymalne rozwiazanie, tylko teraz czy takie wyszykanie/sortowanie po polach tekstowych o dlugosci 10 znakow, nie bedzie gorsze od podanego powyzej?

EDIT ew. moglbym przerobic skrypt i zastosowac pola liczbowe w zamian za 10 znakowe tekstowe. Jak te 3 sprawy mialby sie do optymalizacji, dla przykladu podajac: 1 mln zapytan na godzine.

Ten post edytował Piotr_BB 22.07.2011, 16:45:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 16:30