webForumDet fria alternativet

sql AND och OR

Databaser & SQL

7 svar · 425 visningar · startad av jlee

Medlem sedan dec. 2002378 inlägg
Frågan#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

Medlem sedan maj 20018 027 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.

Medlem sedan dec. 2002378 inlägg
#3

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

Medlem sedan dec. 2002378 inlägg
#4

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

Medlem sedan nov. 20022 355 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

Medlem sedan dec. 2002378 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

Medlem sedan dec. 19996 721 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 =.

Medlem sedan maj 20018 027 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.

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)