zozomax Creative Commons License 2009.06.22 0 0 1728

Mondjuk hasonló a tábla :

 
CREATE TABLE `rendelo` (
  `kod` char(27) NOT NULL default '',
  `nev` char(30) NOT NULL default '',
  `szulido` date NOT NULL default '0000-00-00',
  `tolt` double NOT NULL default '0',
  `seged` char(3) NOT NULL default '.F.',
  PRIMARY KEY  (`kod`),
  KEY `tolt` (`tolt`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

 

Az enyémben több mező és 55000 sor van, a tolt mezőkben valamekkora számok vannak.

Aztán ODBC-n keresztül megy: 

SELECT * FROM rendelo WHERE tolt>200 LIMIT 0,500 
(itt a legelső eredmény sor, ami véletlenül egyben a tábla legelső sora is, lemarad )

 

 SELECT * FROM rendelo WHERE tolt>200 LIMIT 500,1000  
(ez már jó, megvan mind a következő 500 sor...)

 

Ha az első így megy where nélkül:

 
SELECT * FROM rendelo LIMIT 500

 

akkor benne van a kérdéses legelső rekord is és látszik, hogy a tolt mező nagyobb mint 200 egyébként...

Nem az ODBC a hibás , SQLYOG ablakban is ezt a adja, mint ahogy a programban ODBC-n keresztül is...

Előzmény: digicat (1727)