Avatar billede hemberg Forsker
04. maj 2015 - 08:09 Der er 1 kommentar og
2 løsninger

LIKE funktion søger for bredt.

Hej alle,

Jeg har lidt problemer med  LIKE funktionen i sql'en.

Sql = "Select * from news WHERE news_content LIKE '% $search_str %' ORDER BY news_date DESC"

Hvis $search_str = "der" giver sql'en også resultat ved følgende ord:

derfor, friheder, derefter m.fl.

Men hvad nu, hvis jeg KUN vil have, at der søges på netop det ord? (uden forskel på store og små bogstaver)  "der". Hvis jeg fjerner "%" i enderne virker det ikke. Hvordan kan det laves? Eller retter kan det laves? Kan ikke lige finde den gyldne sql med LIKE funktionen.

Kolonnen der skal søges i betår af et tekstfelt  med mange ord - og det er deri der skal findes et evt. match.
Avatar billede jakobdo Ekspert
04. maj 2015 - 11:37 #1
Avatar billede hemberg Forsker
04. maj 2015 - 16:32 #2
Tak du gamle ;-) thumbs up. Det virker bare det her. Ved ikke lige hvorfor jeg ikke selv havde fanget den. Læg et svar.

Og så lige til andre der evt. skulle følge med på sidelinien. Her er så den færdige funktionelle sql:

$strSQL = "Select * FROM news WHERE news_headline REGEXP '[[:<:]]' '$news_search' '[[:>:]]' OR news_content REGEXP '[[:<:]]' '$news_search' '[[:>:]]' AND news_from_date <= curdate() ORDER BY news_add_date DESC";
Avatar billede hemberg Forsker
24. maj 2015 - 15:26 #3
Ok - Ingen svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester