Toon posts:

[mysql] nummer in LIKE query

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een bepaalde toepassing (java) voer ik onderstaande query uit.

select * from namen WHERE naam LIKE '%<iets>%

Dit werkt opzich best goed. Alleen zodra er een nummer, bijvoorbeeld 1 in voorkomt geeft deze query geen resultaat meer terug? Wat moet ik hier aan doen?

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 18-05 16:28
Bedoel je dat als er op de plaats van %<iets>% een nummer in voor komt? Dat lijkt me in dat geval misschien wel logisch omdat je niet vaak nummers in namen hebt ( behalve bedrijfsnamen misschien )

stp - PSN ID: stp_4


  • simon
  • Registratie: Maart 2002
  • Laatst online: 19:34
hmm, is het een veld voor integers of voor strings?

|>


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 18-05 16:28
Simon schreef op zaterdag 04 december 2004 @ 13:50:
hmm, is het een veld voor integers of voor strings?
[naam] als integers lijkt me onwaarschijnlijk......

stp - PSN ID: stp_4


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Verwijderd schreef op zaterdag 04 december 2004 @ 13:37:
Voor een bepaalde toepassing (java) voer ik onderstaande query uit.

select * from namen WHERE naam LIKE '%<iets>%

Dit werkt opzich best goed. Alleen zodra er een nummer, bijvoorbeeld 1 in voorkomt geeft deze query geen resultaat meer terug? Wat moet ik hier aan doen?
Lijkt me heel sterk, je bedoelt dus dat je de volgende query uitvoert:

code:
1
SELECT * FROM namen WHERE naam LIKE '%1%'


werkt hier prima als naam een nummer bevat....

Verwijderd

Topicstarter
nou sorry, maar bij mij werkt het echt niet.
die namen was een fake name. maar goed dat maakt niet uit. Het is een varchar veld
Dit veld kan characters en nummers bevatten. Maar met een nummer in het vraagteken lukt de query zoals hieronder staat niet

code:
1
2
3
    PreparedStatement pstmt = dbCon.getConnection().prepareStatement("select BoekCode, Schrijver from schrijvers WHERE Schrijver LIKE ?");
    pstmt.setString(1,"%"+searchString+"%");
    ResultSet rs = pstmt.executeQuery();

[ Voor 39% gewijzigd door Verwijderd op 04-12-2004 14:18 . Reden: verduidelijking ]


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
wat voor database spreek je aan? in mysql werkt het namelijk prima (net getest)

//edit

oeps, ik zie nu dat je idd ook mysql gebruikt.
ik heb een tabel waar oa een postcode kolom in zit die als VARCHAR(7) is gedefinieerd

en dit:
MySQL:
1
SELECT * FROM table WHERE postcode LIKE '%9%' LIMIT 0,100


werkt prima

[ Voor 62% gewijzigd door marty op 04-12-2004 14:40 ]


Verwijderd

Topicstarter
mysql 4.1.
Jij het lijkt mij ook heel erg vaag. Ik ben toch niet gek, denk ik :? en zo moeilijk kan het niet zijn
Ik denk dat ik even een nachtje ga slapen. En misschien kom ik later op het verrassende antwoord, of ondek het kleine foutje. Waarna ik mij voor mijn kop sla 8)7

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
heb je het ook rechtstreeks onder de (mysql) prompt geprobeerd?

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 05-01 14:41
* bartvb is (nog) een complete Java nub maar heeft het niets te maken met Typecasting?

Kijk eens wat er gebeurt als je de query richting console gooit ipv meteen naar MySQL. Staat er dan een geldige query of probeert Java het cijfer 1 op te tellen bij de waarde van die string ofzo?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

mysql is nogal vaag met typecasting:
SQL:
1
SELECT if(0="aardappel","mysql is vaag","mysql != vaag op dit punt)

Ik heb hier niet de middelen om het uit te proberen, maar ik kan me voorstellen dat mysql een enorm verschil ziet tussen SELECT ... WHERE veld LIKE ? en SELECT ... WHERE veld LIKE "?"

Localhost, sweet localhost


  • GambitRS
  • Registratie: Juni 2001
  • Laatst online: 13-06-2013

GambitRS

w00t

Verwijderd schreef op zaterdag 04 december 2004 @ 14:12:
nou sorry, maar bij mij werkt het echt niet.
die namen was een fake name. maar goed dat maakt niet uit. Het is een varchar veld
Dit veld kan characters en nummers bevatten. Maar met een nummer in het vraagteken lukt de query zoals hieronder staat niet

code:
1
2
3
    PreparedStatement pstmt = dbCon.getConnection().prepareStatement("select BoekCode, Schrijver from schrijvers WHERE Schrijver LIKE ?");
    pstmt.setString(1,"%"+searchString+"%");
    ResultSet rs = pstmt.executeQuery();
Je code is denk ik niet helemaal correct, probeer eens:

code:
1
    pstmt.setString(1,"'%"+searchString+"%'");


Want wanneer je like gebruikt moet je hetgene wat na like komt wel tussen ' zetten, anders vindt MySQL je niet meer lief :)

MechWarrior || Monsters Game


Verwijderd

Topicstarter
code:
1
pstmt.setString(1,"'%"+searchString+"%'");

Want wanneer je like gebruikt moet je hetgene wat na like komt wel tussen ' zetten, anders vindt MySQL je niet meer lief
Ja dit klopt gedeeltelijk, echter zorgt dat prepared statement in java daar automatisch voor. Hoef je niet moeilijk te doen met Strings/getallen.

Maar de oplossing van de vraag was dat in de "namen" ook geen nummer voorkomt, maar in de afkortingen van de "namen" wel, maar in die kolom deed ik geen "LIKE", dus ook geen resultaat, logisch 8)7
Pagina: 1