Vraag & Antwoord

Webprogrammeren & scripting

[PHP/MySQL] zoeken en ordenen op substring-occurance

4 antwoorden
  • Hallo, Weet iemand ook hoe ik mijn search-engine-resultaten kan ordenen op het aantal keren dat de opgegeven zoekstring in een veld voorkomt? Simpel uitgedrukt: SELECT * FROM table WHERE column LIKE %substring% ORDER BY [string occurance] ASC alvast bedankt.
  • COUNT[string occurance]
  • Bedankt Sabine, maar wat is de positie ervan binnen de query? SELECT * FROM table WHERE column LIKE %substring% ORDER BY COUNT[string occurance] ASC? of: SELECT * FROM table COUNT(*) WHERE column LIKE %substring% ORDER BY column ASC? of begrijp ik het verkeerd? vr.gr.
  • Volgens mij gaat COUNT() niet helemaal werken, tenzij ik iets over het hoofd heb gezien in de manual. In principe zie ik 2 mogelijkheden. Ten eerste kan je gebruik maken van de full text search mogelijkheden van mysql (zie daarvoor de manual), daarmee is het mogelijk om een relevantie op te vragen en m.b.v. deze waarde moet het mogelijk zijn om te sorteren. Heb er overigens geen ervaring mee dus kan je niet verder helpen. Ten tweede zou je iets kunnen verzinnen binnen de "normale" sql queries. Een veelgebruikt truukje is om de zoekterm te verwijderen en de lengte van de string die je dan overhoudt te vergelijken met de oorspronkelijke string. In mysql ziet dat er dan ongeveer zo uit (niet getest): [code:1:daaad473ca] SELECT * FROM tabelletje ORDER BY (LENGTH(veld) - LENGTH(REPLACE(veld, 'zoekterm', ''))) DESC [/code:1:daaad473ca]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.