webForumDet fria alternativet

Query visar fel resultat

Databaser & SQLur Databashanterare & SQL

4 svar · 1 253 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#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'".

Medlem 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.

Medlem 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?

Medlem 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.

Medlem sedan juli 20041 271 inlägg
#5

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

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