[MySQL] Select geeft verkeerde resultaat

Pagina: 1
Acties:

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Door een fout in mijn source code ben ik achter het volgende probleem gekomen, mogelijk een bug :?

Ik heb een tabel waar ik een varchar veld als primary key heb. Als ik nu een select doe op dat veld als volgt

select * from tbltest where test = 0 <--- FOUT test is namelijk een VARCHAR veld en geen INT.

Dan krijg ik alle waardes uit de tabel terug? Dat kan toch niet kloppen?

VERSIE MySQL: 3.23.49

Iemand bekent met dit probleem?


Ik heb de volgende tabel met de volgende data
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE tbltest (
  blaat tinyint(4) NOT NULL default '0',
  test varchar(20) NOT NULL default '',
  PRIMARY KEY  (test),
  UNIQUE KEY test (test),
  KEY test_2 (test)
) TYPE=MyISAM;

#
# Dumping data for table `test`
#

INSERT INTO tbltest VALUES (1,'test');
INSERT INTO tbltest VALUES (3,'test2');
INSERT INTO tbltest VALUES (4,'test3');

Programmer - an organism that turns coffee into software.


Verwijderd

Als dat een VARCHAR is, moet je dan niet .... WHERE test = '0' hebben?

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 16:36

Super_ik

haklust!

where test LIKE '0'

niet = maar LIKE :)

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Heren....

Ik weet dat de query fout is, maar de het resultaat dat de query terug geeft is fout!!!!


Ik krijg namelijk de hele db terug als resultaat!! :'(

Dat heeft me dus net een backup gekost... :( Tik foutje :(

Dit gebeurt namelijk ook bij een update!!!!!!

Programmer - an organism that turns coffee into software.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Ik gok op de volgende verklaring wat mijn duim net heeft geproduceerd:

Geef mij alle rijen waar de string gelijk is aan het getal 0.

Mysql: ehhh.. string.. wat is het getal van deze string "JFKDJK" ehhmm... das FOUT... FALSE.. ehm..ohja.. false staat gedeclareerd als 0.

0=0 betekent dus alles.. laat ik maar eens alle rijen teruggeven.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Op maandag 18 maart 2002 10:47 schreef dusty het volgende:
Ik gok op de volgende verklaring wat mijn duim net heeft geproduceerd:

Geef mij alle rijen waar de string gelijk is aan het getal 0.

Mysql: ehhh.. string.. wat is het getal van deze string "JFKDJK" ehhmm... das FOUT... FALSE.. ehm..ohja.. false staat gedeclareerd als 0.

0=0 betekent dus alles.. laat ik maar eens alle rijen teruggeven.
Heee... das een redelijke verklaring daar kan ik mee leven....

Niet dat ik het correct vind van MySQL....

Programmer - an organism that turns coffee into software.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 18 maart 2002 10:51 schreef LuCarD het volgende:
[..]
Heee... das een redelijke verklaring daar kan ik mee leven....
Ik zal ut tegen mijn duim zeggen.
Niet dat ik het correct vind van MySQL....
Moet je een echte database gaan gebruiken :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Op maandag 18 maart 2002 10:59 schreef dusty het volgende:

[..]

Ik zal ut tegen mijn duim zeggen.
[..]

Moet je een echte database gaan gebruiken :+
Ik zal gelijk naar mijn manager rennen en zeggen dat we Oracle moeten kopen aangezien MySQL fouten maakt als ik foute vergelijkingen doe :+

Programmer - an organism that turns coffee into software.


Verwijderd

Op maandag 18 maart 2002 10:19 schreef Super_ik het volgende:
where test LIKE '0'

niet = maar LIKE :)
wat is dit voorn opmerking?
ten eerste klopt het niet, en ten tweede is een LIKE zonder wildcards een beetje nutteloos (8>

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 18 maart 2002 11:13 schreef woeitje het volgende:
[..]
wat is dit voorn opmerking?
ten eerste klopt het niet, en ten tweede is een LIKE zonder wildcards een beetje nutteloos (8>
Ach like maakt hoogstens de query iets trager :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
Moet je een echte database gaan gebruiken
Hmm... Ik zou liever zeggen "moet je maar de juiste query erop loslaten". Als je op Oracle onjuiste queries loslaat krijg je net zo goed ongewenste results.

Ik spoor veilig of ik spoor niet.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 18 maart 2002 11:59 schreef Anders het volgende:
[..]
Hmm... Ik zou liever zeggen "moet je maar de juiste query erop loslaten". Als je op Oracle onjuiste queries loslaat krijg je net zo goed ongewenste results.
Ssssst... zwijg jij!.. *lol*.. als ik het goed heb krijg je bij oracle een foutmelding.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Als je query fout is begint oracle idd te piepen

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 18 maart 2002 11:59 schreef Anders het volgende:
Hmm... Ik zou liever zeggen "moet je maar de juiste query erop loslaten". Als je op Oracle onjuiste queries loslaat krijg je net zo goed ongewenste results.
Zoals dusty al zegt, dan krijg je foutmeldingen.

Sterker nog, zelfs dingen als een te lange varchar proberen in te voeren levert je bij oracle een foutmelding op (ipv dat het domweg getruncate wordt, het deel dat te lang was).
Pagina: 1