Zapytanie SQL w zaleznosci od parametrow w bazie danych
jojajo - 28-02-2006 13:11
Zapytanie SQL w zaleznosci od parametrow w bazie danych
Zapytanie SQL w zaleznosci od parametrow w bazie danych
Jak naj3atwiej wybraa dane z bazy danych SQL w zaleznosci od parametrow w bazie danych.
Ze skryptu PHP dobierane sa najwa?niejsze wartosci zmiennych.
Np.
$ALL=0
$COS=-10
$TAK = 7
$NIE = 9
Dal u3atwienia ustalmy, ze nazwa zmiennej bedzie analogiczna do wpisu w kolumnie (polu)
bazy danych o nazwie PAR.
Liczba tych parametrów (zmiennych) moze dynamicznie ulec zmianie.
Tabela niech zawiera dane:
+==+===+===+===+
|ID|PAR|.A.|.B.|
+==+===+===+===+
|01|ALL|..0|..1|
+--+---+---+---+
|02|COS|-10|..1|
+--+---+---+---+
|03|TAK|..7|..1|
+--+---+---+---+
|04|ALL|..0|..1|
+--+---+---+---+
|05|COS|.15|..1|
+--+---+---+---+
|06|ALL|..0|..0|
+--+---+---+---+
|07|COS|-10|..0|
+--+---+---+---+
|08|SKO|..0|..1|
+--+---+---+---+
Podstawowe warunki wyboru danych?
pole PAR=ALL to w polu A musi byc wartooa 0,
pole PAR=COS to w polu A musi byc wartooa -10
pole PAR=TAK to w polu A musi byc wartooa 7
pole PAR=NIE to w polu A musi byc wartooa 9
W kazdym przypadku wybierane sa dane, dla ktorych kolumna B ma wartosc 1
Jak takie zapytanie zapisac w anjprostszy mozliwy sposob?
Oczywiocie najprzyjemniej by3oby, by liczba parametrow dobierana byla dynamicznie w zaleznosci o zawartosci pola PAR.
Ale nei wiem czy to sie da i jak to zrobic.
Jakies sugestie, by uniknac calych ciagow w stylu
((PAR=?? AND A=$??)
OR
(PAR=?? AND A=$??)
OR
(PAR=?? AND A=$??)
OR
............
.........
OR
(PAR=?? AND A=$??))
AND B=1
No wlasnie jak to uproscic?
Rafal sxat - 28-02-2006 13:12
> Zapytanie SQL w zaleznosci od parametrow w bazie danych > > > > Jak naj3atwiej wybraa dane z bazy danych SQL w zaleznosci od parametrow w > bazie danych. > > Ze skryptu PHP dobierane sa najwa?niejsze wartosci zmiennych. > > Np. > > $ALL=0 > > $COS=-10 > > $TAK = 7 > > $NIE = 9 > > Dal u3atwienia ustalmy, ze nazwa zmiennej bedzie analogiczna do wpisu w > kolumnie (polu) > > bazy danych o nazwie PAR. > > Liczba tych parametrów (zmiennych) moze dynamicznie ulec zmianie. > > Tabela niech zawiera dane: > > +==+===+===+===+ > > |ID|PAR|.A.|.B.| > > +==+===+===+===+ > > |01|ALL|..0|..1| > > +--+---+---+---+ > > |02|COS|-10|..1| > > +--+---+---+---+ > > |03|TAK|..7|..1| > > +--+---+---+---+ > > |04|ALL|..0|..1| > > +--+---+---+---+ > > |05|COS|.15|..1| > > +--+---+---+---+ > > |06|ALL|..0|..0| > > +--+---+---+---+ > > |07|COS|-10|..0| > > +--+---+---+---+ > > |08|SKO|..0|..1| > > +--+---+---+---+ > > Podstawowe warunki wyboru danych? > > pole PAR=ALL to w polu A musi byc wartooa 0, > > pole PAR=COS to w polu A musi byc wartooa -10 > > pole PAR=TAK to w polu A musi byc wartooa 7 > > pole PAR=NIE to w polu A musi byc wartooa 9 > > W kazdym przypadku wybierane sa dane, dla ktorych kolumna B ma wartosc 1 > > Jak takie zapytanie zapisac w anjprostszy mozliwy sposob? > > Oczywiocie najprzyjemniej by3oby, by liczba parametrow dobierana byla > dynamicznie w zaleznosci o zawartosci pola PAR. > > Ale nei wiem czy to sie da i jak to zrobic. > > Jakies sugestie, by uniknac calych ciagow w stylu > > ((PAR=?? AND A=$??) > > OR > > (PAR=?? AND A=$??) > > OR > > (PAR=?? AND A=$??) > > OR > > ........... > > ........ > > OR > > (PAR=?? AND A=$??)) > > AND B=1 > > > No wlasnie jak to uproscic?
jak to zrozumiec?, jaka baza danych, czy mozna prosic o jakas bardziej czytelna forme?
-- Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych
Przemyslaw Popielarski - 28-02-2006 13:12
Rafal sxat <gonzak@op.pl> wrote: > jak to zrozumiec?, jaka baza danych, czy mozna prosic o jakas bardziej > czytelna forme?
Mozna prosic o niecytowanie kilograma smiecia zeby dopisac swojej poltorej linijki?
-- ../ premax ../ premax@hot,pl ../ koniec i bomba, a kto czytal ten traba. w.g.
Rafal sxat - 28-02-2006 13:12
> Mozna prosic o niecytowanie kilograma smiecia zeby dopisac swojej poltorej > linijki? opss.. sorki
-- Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych
Jo - 28-02-2006 13:12
Użytkownik "Rafal sxat" <gonzak@op.pl> napisał w wiadomości news:FEAE0FF92A96463B892F796E76E66F9C@sxat... > > jak to zrozumiec?, jaka baza danych, czy mozna prosic o jakas bardziej > czytelna forme?
A chodzi o mozliwość zapytania w SQL, np dla MySQL, ale to aż tak nie jest istotne, dla jakiego "silnika SQL" ma to być.
Chodziło mi o mozliwosć zapytania, by pobrać wartość tylko tych rekordów, w ktorych: * zawartość jednego z pól (w przykladzie PAR) jest taka sama jak nazwa zmiennej podanej z programu
AND
* wartość innego z pól ( w przykładzie A) była równa wartości zmienej
Innymi słowy. Miejmy zmienną COS. W danej sytuacji dla tej zmiennej przyporzadkujmy wartość -10. Oraz zmienną, np ALL o wartości 0 (zero)
I chodzi o to by wybrać wartoci wszytskich pól w sytuacji, gdy jesli pojawia się w polu PAR wartość COS oraz w polu A wartość -10 lub w polu PAR wartość ALL oraz w plu A wartość 0.
Można zrobić to programując w języku skryptu. Ale czy da sie to zrobić w formie zapytania SQL.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
zanotowane.pldoc.pisz.plpdf.pisz.plautwywalczyl.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 |
|