ďťż
 
MySql ORDER BY WHERE ? ďťż
 
MySql ORDER BY WHERE ?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

MySql ORDER BY WHERE ?



pawella - 13-03-2006 11:22
MySql ORDER BY WHERE ?
  Witam wszystkich serecznie
Proszę naprowadźcie mnie na taki temat

Mój problem to sortowanie zapytania w kolejności spełnienia
warunków
chciał bym aby po zapytaniu np

SELECE id FROM `moja_tabela` WHERE id=4 OR id=15 OR id=0 OR id=3 .....
OR id=156

otrzymać wyniki w kolejności takiej w jakiej zostały użyte w
warunku

id
===
4
15
3
....
156

Bardzo proszę o pomoc i będę wdzięczny za wszelkie wskazówki
pozdrawiam Paweł





Borszczuk - 13-03-2006 11:23

  On Monday 06 of March 2006 14:50 pawella wrote:

> otrzymać wyniki w kolejności takiej w jakiej zostały użyte w
> warunku

smiem powatpiewac w wykonalnosc samym zapytaniem bez procedur czy
czego tam. WHERE sluzy tylko do warunkowania a nie sortowania - od
tego jest raczej ORDER ale tez mozesz miec problem zeby go
w taki sposob uzyc.

--
Life is a beach and then you dive...

Marcin




keczerad - 13-03-2006 11:23

  pawella napisał(a):
> Witam wszystkich serecznie
> Proszę naprowadźcie mnie na taki temat
>
> Mój problem to sortowanie zapytania w kolejności spełnienia
> warunków
> chciał bym aby po zapytaniu np
>
> SELECE id FROM `moja_tabela` WHERE id=4 OR id=15 OR id=0 OR id=3 ....
> OR id=156

do tego raczej stosuje sie :

id IN (4,15,0,3,...)

>
> Bardzo proszę o pomoc i będę wdzięczny za wszelkie wskazówki
> pozdrawiam Paweł
>

Po drugie tak nie zrobisz trzeba dodac jeszcze pole kolejnosc i po tym
sortowac.

--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML




Przemyslaw Popielarski - 13-03-2006 11:23

  keczerad <keczerad@poczta.fm> wrote:
> id IN (4,15,0,3,...)
>>
>> Bardzo proszę o pomoc i będę wdzięczny za wszelkie wskazówki
>> pozdrawiam Paweł
>
> Po drugie tak nie zrobisz trzeba dodac jeszcze pole kolejnosc i po tym
> sortowac.

pole kolejnosc mozna generowac na poziomie zapytania, wstawiajac IF do
selecta i robiac potem odpowiedni ORDER.

--
../ premax
../ premax@hot,pl
../ koniec i bomba, a kto czytal ten traba. w.g.





keczerad - 13-03-2006 11:23

  Przemyslaw Popielarski napisał(a):

> pole kolejnosc mozna generowac na poziomie zapytania, wstawiajac IF do
> selecta i robiac potem odpowiedni ORDER.
>

wszystko mozna tylko pytanie czy jest sens bo podejrzewam ze ma sie to
robic dynamicznie wiec if raczej odpadaja, poza tym w przyapdku wiekezej
ilosc to sie stosuje sie casa.

Od biedy mozna tez zrobic to unionami, bo zapytanie mozna generowac na
wartwie programu i tam decydowac, ktore pierwsze

Select * from tabela where id=3
Union
Select * from tabela where id=5
......

--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML




Przemyslaw Popielarski - 13-03-2006 11:23

  keczerad <keczerad@poczta.fm> wrote:
> wszystko mozna tylko pytanie czy jest sens bo podejrzewam ze ma sie to
> robic dynamicznie wiec if raczej odpadaja, poza tym w przyapdku
> wiekezej ilosc to sie stosuje sie casa.

Jak dynamicznie, jak stricte w IN mają byc podane wartosci? Te same
wartosci mozna dac do IF w pierwszej czesci SELECT-a.

> Od biedy mozna tez zrobic to unionami,

Nie mozna. Uniony w zadnym wypadku nie gwarantują kolejnosci rezultatow. I
znowu musisz uzyc IF.

--
../ premax
../ premax@hot,pl
../ koniec i bomba, a kto czytal ten traba. w.g.




keczerad - 13-03-2006 11:23

  Przemyslaw Popielarski napisał(a):
> keczerad <keczerad@poczta.fm> wrote:
>
>> wszystko mozna tylko pytanie czy jest sens bo podejrzewam ze ma sie to
>> robic dynamicznie wiec if raczej odpadaja, poza tym w przyapdku
>> wiekezej ilosc to sie stosuje sie casa.
>
>
> Jak dynamicznie, jak stricte w IN mają byc podane wartosci? Te same
> wartosci mozna dac do IF w pierwszej czesci SELECT-a.

no mozna budowac zapytanie dynamicznie, to tylko moje podejrzenia
oczywiscie, ale jakos nie wiedze tego na stale.

> Nie mozna. Uniony w zadnym wypadku nie gwarantują kolejnosci rezultatow.
> I znowu musisz uzyc IF.

no tak, ale ja jeszcze nie trafilem na ten wyjatek od reguly

--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML




Przemyslaw Popielarski - 13-03-2006 11:23

  keczerad <keczerad@poczta.fm> wrote:
>> Jak dynamicznie, jak stricte w IN mają byc podane wartosci? Te same
>> wartosci mozna dac do IF w pierwszej czesci SELECT-a.
>
> no mozna budowac zapytanie dynamicznie, to tylko moje podejrzenia
> oczywiscie, ale jakos nie wiedze tego na stale.

To i IF-y zbudujesz dynamicznie.

>> Nie mozna. Uniony w zadnym wypadku nie gwarantują kolejnosci
>> rezultatow. I znowu musisz uzyc IF.
>
> no tak, ale ja jeszcze nie trafilem na ten wyjatek od reguly

Przypadek.

--
../ premax
../ premax@hot,pl
../ koniec i bomba, a kto czytal ten traba. w.g.




pawella - 13-03-2006 11:23

  > id IN (4,15,0,3,...)
Jak najbardziej masz racje

Witajcie bardzo Wam dziekuje zrobilem :-)
Wstepnie kazde z rozwiazan daje mi efekt którego szukalem

i union i case dziala jak nalezy co prawda nie uzylem warunku IF
ale mysle, ze tez by dzialalo
pytanie teraz przy czym pozostac.

Zapytanie jest generowane dynamicznie
wiec union bedzie szybsze i to mój kolejny problem które
rozwiazanie zastosowac ??

pozdrawiam Was serdecznie panowie i ogromne dzieki




Mikolaj Rydzewski - 15-03-2006 10:40

  pawella wrote:
> Zapytanie jest generowane dynamicznie
> wiec union bedzie szybsze i to mój kolejny problem które
> rozwiazanie zastosowac ??

A sprawdzales moze koszt wykonania takiego pokreconego zapytania? Moze
sie okazac, ze szybsze bedzie posortowanie rekordow po stronie aplikacji
niz konstruowanie takiego selecta i jego obrobka po stronie bazy.

--
Mikolaj Rydzewski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • own-team.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com