Avatar billede pcdl Nybegynder
16. april 2008 - 15:22 Der er 2 kommentarer

'$query' eller like '$query'

Hej har et spørgsmål angående mysql når jeg skal søge databasen igennem vil jeg gerne have en måde så den kan søge sådan her like '%$query%' istedet for = $query fordi jeg vil have hvis tabellen hedder test45 så hvis man bare søger efter test skal den også finde test45 problemet er bare når jeg bruger det der like '%$query%' tager søgningen 30 sekunder nogen som har en ide ?
serveren den står på er en rimelig ny en med quad core q6600 processor og 8gb ddr2 ram
Avatar billede michael_stim Ekspert
16. april 2008 - 15:56 #1
Indekseringen ryger når du bruger like '%et_eller_andet%'
Kan ikke rigtigt huske hvordan det er med enkelt %.
Du kan evt prøve: LIKE '%et_eller_andet' OR felt LIKE 'et_eller_andet%'
Avatar billede pidgeot Nybegynder
16. april 2008 - 16:03 #2
Når du bruger %noget% er et table scan nødvendigt, og når datamængderne kommer lidt op, så kan det næsten kun gå langsomt. Det samme gælder postfiks (%noget).

Hvis du kan nøjes med at søge på præfiks (altså noget%), kan et indeks på den kolonne bruges - hvor mange tegn du skal indeksere afhænger lidt af hvor lange strenge du regner med at skulle søge på.
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