webForumDet fria alternativet

Query visar fel resultat

4 svar · 1 253 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Tjena...

Följande query visar fel resultat, (på sidan):

SELECT * FROM boats WHERE ort LIKE '%$search_string%' || plats LIKE '%$search_string%' && feed != '' && aktiv = 'ja' ORDER BY ort

Den visar 2 resultat "för mycket".
En av posterna saknar "feed" (tom), samt att båda posterna har "aktiv='nej'".

OldtimerMedlem sedan juni 201161 inlägg
#2

Om jag får anta att || betyder OR och && betyder AND, så är det inte så konstigt.

Ditt filter tar ju med alla poster som matchar antingen

ort LIKE '%$search_string%'

eller

plats LIKE '%$search_string%' AND feed != '' AND aktiv = 'ja'

Villkoren för feed och aktiv kommer alltså endast med för de poster som bara matchar mot plats. Matchar posten mot ort, räcker ju det.

Du behöver kanske använda parenteser om du menar någon annan ordning.

GuldstrandMedlem sedan juli 20041 271 inlägg
#3

Hmm, ok.. hur löser jag det så att 'feed' och 'aktiv' körs på BÅDA söksträngarna?

OldtimerMedlem sedan juni 201161 inlägg
#4

Parenteser...?

Istället för

WHERE ort LIKE '%$search_string%' OR plats LIKE '%$search_string%' AND feed != '' AND aktiv = 'ja'

använder du

WHERE (ort LIKE '%$search_string%' OR plats LIKE '%$search_string%') AND feed != '' AND aktiv = 'ja'

så kommer OR att utvärderas före AND.

GuldstrandMedlem sedan juli 20041 271 inlägg
#5

Då är jag med. Tusen tack för hjälpen. ;)

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)