anoniem Geplaatst: 16 december 2002 Delen Geplaatst: 16 december 2002 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. Quote Link naar reactie
anoniem Geplaatst: 16 december 2002 Auteur Delen Geplaatst: 16 december 2002 COUNT[string occurance] Quote Link naar reactie
anoniem Geplaatst: 16 december 2002 Auteur Delen Geplaatst: 16 december 2002 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. Quote Link naar reactie
anoniem Geplaatst: 16 december 2002 Auteur Delen Geplaatst: 16 december 2002 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] Quote Link naar reactie
anoniem Geplaatst: 17 december 2002 Auteur Delen Geplaatst: 17 december 2002 Wat ik meestal doe (maar ik gebruik altijd access & asp) is in access een query bouwen met de query optie, en daar de SQL vandaan kopieren. Lekker lui. Zo kun je ook blijven testen als iets niet goed gaat, tot je de juiste resultaat recordset hebt. (Je kunt makkelijker uit een queryresultaat iets fouts destilleren dan uit een resultatenpagina van je PHP/ASP) Wellicht kun je het opsplitsen, dus een query die de count voor je doet, en een query die dat resultaat combineert met de andere gegevens en sorteert. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen