Avatar billede kirky Nybegynder
26. november 2001 - 13:36 Der er 4 kommentarer og
1 løsning

fleksibel søgning med SQL i JDBC

Hvordan laver man en såkaldt fuzzy search med SQL i JDBC. Koden nedenfor bruger input.getText() til at hente noget tekst fra noget GUI. Hvad skal der gøres ved koden, så den kan finde et navn der hedder Peter, hvis man kun indtaster Pet? Jeg har forsøgt med at sætte % ind på begge sider af input.getText() men det fungere ikke.

ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn = \'\" + input.getText() + \"\';\");
Avatar billede lyhr007 Nybegynder
26. november 2001 - 13:39 #1
SQL:

SELECT * FROM brugere WHERE fornavn LIKE \'%pet%\'

Vil finde peter, superpet altså alt hvor pet indgår i tekst strengen.
Avatar billede kresten Nybegynder
26. november 2001 - 13:40 #2
Tror du skulle have postet i SQL eller sådan noget, men her er den...

SELECT * FROM brugere WHERE fornavn LIKE lower(\'Pet%\')
Avatar billede kirky Nybegynder
26. november 2001 - 13:43 #3
Jo men det er jo en blanding af SQL og Java. Jeg ved godt at sådan fungere det med en normal query. Men den bruger jo input.getText() til at hente noget tekst med. Det er der problemet er. Det skal åbenbart skrives anderledes når man bruger JDBC.

I kan prøve at sætte det ind i den kodestump jeg har vedlagt i bunden af mit spørgsmål
Avatar billede kresten Nybegynder
26. november 2001 - 13:46 #4
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIEK \'%\" + input.getText() + \"%\'\");
Avatar billede kresten Nybegynder
26. november 2001 - 13:46 #5
ups, det skulle så like ikke LIEK :-)

og man bør nok også lower case som jeg skrev tidligere.
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
Kurser inden for grundlæggende programmering

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