=?iso-8859-2?Q?=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAkszych?=
Piter - 13-01-2007 00:01
=?iso-8859-2?Q?=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAkszych?=
Witam Chcialbym jednym zapytaniem wyciągnac z bazy 5 rekordów mniejszych i 5 większych od podanedo ID. Dla ID=10 1,4,5,6,7,9 10 14,17,33,89,432
Łatwo mozna to zrobić dwoma zapytaniami Select * from tabela where id>$ID limit 5 Select * from tabela where id<$ID limit 5
Ale jak to wyciągnąc jednym zapytaniem? Opcja LIMIT w tym wypadku chyba nie pomoże.
Piter
=?ISO-8859-2?Q?Jaros=B3aw_Zi=F3=B3kowski?= - 13-01-2007 00:01
=?ISO-8859-2?Q?Re=3A_=5BMySql=5D_-_select_po_5_rekor?==?ISO-8859-2?Q?dow_mniejssych_i_wi=EAkszych?=
Piter napisał(a): > Witam > Chcialbym jednym zapytaniem wyciągnac z bazy 5 rekordów mniejszych i 5 > większych od podanedo ID. > Dla ID=10 > 1,4,5,6,7,9 10 14,17,33,89,432 > > Łatwo mozna to zrobić dwoma zapytaniami > Select * from tabela where id>$ID limit 5 > Select * from tabela where id<$ID limit 5 > > Ale jak to wyciągnąc jednym zapytaniem? Opcja LIMIT w tym wypadku chyba > nie pomoże. > > Piter
Jednym będziesz miał duzy kłopot z limitami dla każdego. Moim zdaniem powinieneś połączyć oba zapytania Union czyli
(SELECT * FROM tabela where id>$ID LIMIT 5)UNION (SELECT * FROM tabela where id<$ID LIMIT 5);
Jeśli nawet jeśli rekordy będą identyczne mają być wyświetlone dwa razy uzyj UNION ALL a nie tylko UNION
Piter - 13-01-2007 00:01
=?iso-8859-2?Q?Re:_=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAk?==?iso-8859-2?Q?szych?=
> Jednym będziesz miał duzy kłopot z limitami dla każdego. > Moim zdaniem powinieneś połączyć oba zapytania Union czyli > > (SELECT * FROM tabela where id>$ID LIMIT 5)UNION (SELECT * FROM tabela > where id<$ID LIMIT 5); > > Jeśli nawet jeśli rekordy będą identyczne mają być wyświetlone dwa razy > uzyj UNION ALL a nie tylko UNION
Dzięki za radę. Problemem jest w tym wypadku wersja MySqla zainstalowana. Ja uzywam 5, wiele serwerów uzywa 5 lub 4.1, ale napewno znajdzie się jeszcze gdzieś MySql 4.0 lub starszy. Tam nie niestety działają podzapytania :(
Twój sposób jest bardzo dobry ale jak ktoś pomoże jak to zrobić bez podzapytań będę wdzięczny.
Piter
Maciek Dobrzanski - 13-01-2007 00:01
"Piter" <1028@op.pl> wrote in message news:eo7o1e$fu4$1@news.onet.pl...
> Twój sposób jest bardzo dobry ale jak ktoś pomoże jak to zrobić bez > podzapytań będę wdzięczny.
Podzapytania podzapytaniami a unia unią. Będzie działać od 4.0 w górę.
Maciek
=?ISO-8859-2?Q?Jaros=B3aw_Zi=F3=B3kowski?= - 13-01-2007 00:01
=?ISO-8859-2?Q?Re=3A_=5BMySql=5D_-_select_po_5_rekor?==?ISO-8859-2?Q?dow_mniejssych_i_wi=EAkszych?=
Piter napisał(a): >> Jednym będziesz miał duzy kłopot z limitami dla każdego. >> Moim zdaniem powinieneś połączyć oba zapytania Union czyli >> >> (SELECT * FROM tabela where id>$ID LIMIT 5)UNION (SELECT * FROM tabela >> where id<$ID LIMIT 5); >> >> Jeśli nawet jeśli rekordy będą identyczne mają być wyświetlone dwa >> razy uzyj UNION ALL a nie tylko UNION > > > Dzięki za radę. Problemem jest w tym wypadku wersja MySqla > zainstalowana. Ja uzywam 5, wiele serwerów uzywa 5 lub 4.1, ale napewno > znajdzie się jeszcze gdzieś MySql 4.0 lub starszy. > Tam nie niestety działają podzapytania :( > > Twój sposób jest bardzo dobry ale jak ktoś pomoże jak to zrobić bez > podzapytań będę wdzięczny. > > Piter UNION to nie jest podzapytanie i z tego co mi wiadomo działa na 4.0, głowy nie dam bo nie mam gdzie sprawdzić ale jestem prawie pewien, że działa.
Podzapytanie to np. SELECT * FROM tablela where id=(SELECT....);
Piter - 13-01-2007 00:01
=?iso-8859-2?Q?Re:_=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAk?==?iso-8859-2?Q?szych?=
> UNION to nie jest podzapytanie i z tego co mi wiadomo działa na 4.0, głowy > nie dam bo nie mam gdzie sprawdzić ale jestem prawie pewien, że działa. > > Podzapytanie to np. SELECT * FROM tablela where id=(SELECT....);
Faktycznie nie mam racji. Wielkie dzięki! O to mi chodziło!
Pozdrawiam Piter
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.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 |
|