Avatar billede dennism Nybegynder
12. februar 2003 - 14:25 Der er 6 kommentarer og
2 løsninger

Søgning i MySQL...

Hvad er forskellen på disse søgninger, og findes der flere muligheder?

SELECT * FROM db WHERE raekke = 'test'.
SELECT * FROM db WHERE raekke = '%test'.
SELECT * FROM db WHERE raekke = '%test%'.
Avatar billede ahv Nybegynder
12. februar 2003 - 14:31 #1
den første skal være test
Den anden må være bla bla bla test
Den sidste må være bla bla bla test bla bla bla
Der er også en SELECT * FROM db WHERE raekke = 'test%'.
Den skal være test bla bla bla
Avatar billede disky Nybegynder
12. februar 2003 - 14:32 #2
den først finder poster hvor raekke KUN indeholder 'test

den anden, for indholdet af raekke slutter med 'test' % er wildcard. feks 'hej med dig test' bliver fundet

og den sidste finder dem hvor raekke indeholder ordet 'test' f.eks 'dette er en test er det' blvier fundet, men også 'test' eller 'testen'
Avatar billede mufoxe Nybegynder
12. februar 2003 - 15:13 #3
Du bør iøvrigt være forsigtig med at bruge %, da det sløver databasen gevaldigt. Du bør som minimum lave det sådan at brugeren skal vælge at slå det til under søgning.
Avatar billede dennism Nybegynder
12. februar 2003 - 15:17 #4
Er der en der kan se en fejl i denne søgning:

SELECT id, status, point, brugernavn FROM brugere WHERE brugernavn = '%a%' ORDER BY brugernavn ASC LIMIT 0, 25

Jeg har en række i tabellen hvor brugernavnet er admin, derfor burde den komme frem efter som jeg søger efter de brugernavn som indeholder "a".. Men den finder ikke nogen!.. Hvorfor?
Avatar billede disky Nybegynder
12. februar 2003 - 15:19 #5
Hedder din admin 'admin' eller 'Admin' ?

et a er ikke det samme som et A set fra MySQL's side.
Avatar billede dennism Nybegynder
12. februar 2003 - 15:25 #6
Han hedder "admin"...

Hvis jeg søger sådan her, så kommer han frem:
SELECT id, status, point, brugernavn FROM brugere WHERE brugernavn = 'admin' ORDER BY brugernavn ASC LIMIT 0, 25

Men hvorfor virker den anden ikke?
Avatar billede disky Nybegynder
12. februar 2003 - 15:38 #7
damm jeg er blind :)

Du skal skrive;

SELECT id, status, point, brugernavn FROM brugere WHERE brugernavn like '%a%' ORDER BY brugernavn ASC LIMIT 0, 25


Når du bruger wildcards skal du bruge 'like' istedet for '=' det gælder også i selve dit spørgsmål.
Avatar billede dennism Nybegynder
12. februar 2003 - 15:45 #8
Tusind tak.. :D
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