Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie po kolejności warunków
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Witam

Mam w uproszczeniu zapytanie

  1. SELECT * FROM users WHERE (war1 = 1 OR war2 = 2 OR war3 = 3)


Czy da się tak posortować wyniki, żeby najpierw byli wyświetleni użytkownicy którzy spełniają warunek war1=1, potem ci którzy spełniają warunek war2 = 2, a na samym końcu ci którzy spełniają war3 = 3 ? Podejrzewam, że nie da się tego osiągnąć bez rozbijania zapytania, ale kto wie (IMG:style_emoticons/default/smile.gif)

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





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Cytat(pitbull82 @ 4.05.2012, 15:14:33 ) *
Witam

Mam w uproszczeniu zapytanie

  1. SELECT * FROM users WHERE (war1 = 1 OR war2 = 2 OR war3 = 3)


Czy da się tak posortować wyniki, żeby najpierw byli wyświetleni użytkownicy którzy spełniają warunek war1=1, potem ci którzy spełniają warunek war2 = 2, a na samym końcu ci którzy spełniają war3 = 3 ? Podejrzewam, że nie da się tego osiągnąć bez rozbijania zapytania, ale kto wie (IMG:style_emoticons/default/smile.gif)

Pozdrawiam


Można tak
  1. SELECT pole,1 FROM users WHERE war1=1
  2. UNION
  3. SELECT pole,2 FROM users WHERE war2=2
  4. UNION
  5. SELECT pole,3 FROM users WHERE war3=3
  6. ORDER BY 2

ale co będzie z wydajnością, to już nie wiem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
pmir13
post
Post #3





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Można po prostu
  1. ...
  2. ORDER BY war1<>1, war2<>2
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: 23.08.2025 - 23:00