Autor Zpráva
caradoc
Profil *
dobrý den,
prosím o radu,
potřebuji vybrat z tabulky řádky podle dvou klíčů
první klíč je
WHERE sloupec.a1>10 AND sloupec.a1<20
(vybere dejme tomu 5 záznamů)
další klíč je
WHERE sloupec.a2=8
(vybere dejme tomu 2 záznamy)
nedaří se mě spojit příkaz
WHERE
tak šikovně aby vybral podle prvního klíče záznamy a podle druhého klíče záznamy, vždy vybere více dat nebo naopak málo
AND nebo OR nepomáhá, nebo nevím jak zapsat
WHERE
do závorek,
prosím o radu, děkuji,
Caradoc
Velda
Profil
SELECT * FROM tabulka  WHERE sloupec1>10 AND sloupec1<20 AND sloupec2=8

pokud ti jde o tohle, tak by ti mělo fungovat tohle, ale jinak jsem hoď celý příkaz, který zkoušíš...
caradoc
Profil *
toto pracuje skvěle, ale vybere záznamy které jsou v rozmezí 10 až 20 a ještě se musí rovnat 8
mě jde o to aby vybral záznamy které jsou v rozmezí 10 a 20 a také záznam který není v rozmezí 10 a 20 ale rovná se 8
řešit příkazem AND nepomůže,..
Cup
Profil
SELECT * FROM tabulka  WHERE (sloupec1>10 AND sloupec1<20) OR ((sloupec1<10 OR sloupec1>20) AND sloupec2=8 )


nevím jesli to dobře chápu, ale zkus si nějak pohrát s výrokovou logikou ... toto by mohlo fungovat ...
jenikkozak
Profil
Cup:
toto by mohlo fungovat ...
Nemohlo, protože to bude ignorovat záznamy rovné 10 či 20 z prvního sloupce. Jako lepší bych viděl:

SELECT * FROM tabulka  WHERE sloupec1>10 AND sloupec1<20 OR sloupec2=8
Kajman_
Profil *
V tomhle případě závorky nejsou potřeba, ale obecně je lepší si ty logické vazby zazávorkovat, aby se chovaly podle potřeby.
SELECT * FROM tabulka  WHERE (sloupec1>10 AND sloupec1<20) OR sloupec2=8
jenikkozak
Profil
Kajman:
Myslel jsem, že logický součin má před logickým součtem přednost. Já si také ve skriptech pro přehlednost píšu závorky i tam, kde by být nemusely. Jak bylo řečeno, v tomto konkrétním případě budou vráceny stejné výsledky i kdyby AND při vyhodnocování přednost nemělo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0