webForumDet fria alternativet

sql AND och OR

7 svar · 423 visningar · startad av jlee

jleeMedlem sedan dec. 2002381 inlägg
#1

Borde man inte kunna skriva:

sql = "SELECT ar, a1, a2, urlredir, lanknamn FROM tabell5 where a2 like 'a%' AND urlredir like 'h%' OR '' ORDER BY ar DESC"

Det borde ge 8 poster enligt mig men alla 19 poster listas. Den listar alltså även poster som inte uppfyller detta krav where a2 like 'a%'
Med 'h%' OR '' vill jag att allt från 'a2' ska listas som innehåller antingen h% eller '' (inget alls).

Svårt att förklara, kanske någon förstår vad jag menar

UlfTMedlem sedan maj 20016 050 inlägg
#2

Pröva med lite parenteser runt villkoren, så att AND och OR prioriteras rätt. Pröva även att skriva det sista villkoret som urlredir like ''. Annars finns risken att '' tolkas som ett eget villkor. Vad det skulle ge för resultat, vet jag inte. Men det är en god idé att skriva villkoren på ett sådant sätt att man verkligen förstår vad de innebär.

jleeMedlem sedan dec. 2002381 inlägg
#3

Ja, att slänga in like efter Or gick inte i allafall

jleeMedlem sedan dec. 2002381 inlägg
#4

Det är nog så att '' tolkas som ett eget villkor men kan inte med () få rätt på det

Mc FettoMedlem sedan nov. 20021 920 inlägg
#5
sql = "SELECT ar, a1, a2, urlredir, lanknamn FROM tabell5 where a2 like 'a%' AND (urlredir like 'h%' OR urlredir = '') ORDER BY ar DESC"

Nått i denna stil borde fungera

jleeMedlem sedan dec. 2002381 inlägg
#6

Ja så funkade bra men undrar om man inte kan öppna samma tabell 2 ggr på rad i samma sida samtidigt om jag har stängt första ordentligt? Då menar jag med hela databas kopplingen och allt inkl conn.close.
Förstår att detta verkar onödigt men i det jag bygger så behöver jag göra det.

Det blir **Provider error '80004005'

Unspecified error**

..eller måste det in fler sökkrav
tex:

sql = "SELECT ar, a1, a2, urlredir, lanknamn FROM Tabell5 where (a2 like a%' OR a2 = 'b%') AND (urlredir like 'h%' OR urlredir = 'nolink') ORDER BY ar DESC"

som dessvärre inte funkade

emissionMedlem sedan dec. 19996 095 inlägg
#7

I den koden saknas det en enkelfnutt före a%' och om du använder wildcard så ska du också använda like, inte =.

UlfTMedlem sedan maj 20016 050 inlägg
#8

jlee skrev:

Ja, att slänga in like efter Or gick inte i allafall

Jag menade iofs att du skulle slänga in urldir efter OR. Och först därefter like, etc.

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb