Avatar billede ducks Nybegynder
14. maj 2008 - 20:34 Der er 4 kommentarer og
1 løsning

Find alt med et eller flere tags der matcher

Jeg står med et problem der skal løses hurtigst muligt. Jeg har et array med nogle tags i og jeg skal derefter finde alle records i databaser, hvor et eller flere af de tags indgår (related search). Tags'ne i databasen er gemt som tag1,tag2,tag3 i en text kolonne.

Håber nogen kan hjælpe, har rodet lidt med IN() men kan vidst ikke bruges her.
Avatar billede arne_v Ekspert
15. maj 2008 - 00:28 #1
Komma separerede tags i et enkelt felt er en håbløs database struktur.

Bedste bud ville nok være at bruge full text søgning.
Avatar billede morw Nybegynder
16. maj 2008 - 14:24 #2
SELECT * FROM tabel
WHERE MATCH (felt) AGAINST ('+tag1 +tag2');

Husk der skal være fulltext index på.

Men som arne siger er det et meget dårligt db design.
Avatar billede ducks Nybegynder
16. maj 2008 - 14:29 #3
Okay tak, jeg har ændret det så jeg har en tabel til tags istedet

id | postid | tag
Avatar billede arne_v Ekspert
08. juni 2008 - 04:42 #4
skal vi have afsluttet her ?
Avatar billede ducks Nybegynder
11. oktober 2010 - 09:45 #5
lukker
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
Computerworld tilbyder specialiserede kurser i database-management

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