21. maj 2005 - 20:04Der er
8 kommentarer og 1 løsning
hvordan får man ét bestemt ord ud af en sql-felt
Hej
hvis man i et text-felt i MySQL har en masse søge ord sepereret med ; (semikolon) hvordan skal man så lave sin SQL for at få de række hvor et bestem ord er med i feltet?
eks linie 1: fisk; hund; grøn bil; hus; nederst; linie 2: kat; blå bil; øverst;
og så skal man have alle de linier med eksempelvis hund
Du bør lave en ny tabel med en række for hvert ord der så også har et id, der passer til den første tabel - altså hvor der så kun står:
1 | fisk 1 | hund 1 | grøn bil 1 | hus 1 | nederst 2 | kat 2 | blå bil 2 | øverst
Så kan man søge efter ordet heri og finde alle de rækker, der indeholder det. Det vil gå markant hurtigere. Der skal selvfølgelig være et indeks på ord-søjlen for at du kan søge hurtigt i den :)
Skal det være endnu mere optimalt og køre stærkere, så har du en tredje tabel til ord. Altså en tabel til linjerne, en tabel til ord og en sidste tabel til relationen. Men det afhænger af, hvor hurtigt det skal gå :)
Det er til et billedegalleri hvor jeg har en masse data om selve billedet, hvor jeg så har haft 3 felt til søgeord... key_person key_location key_event
kan du ikke så ikke beskrive hvordan du ville gøre det, sådan lidt mere?!?
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.