A limit-tel kapcsolatban még nem lett konkrétan leírva, hogy az order by azért kell mert anélkül a rekordok sorrendje nem garantált. A rögzítés sorrendjét felejtsd el, szerintem a MySQL is végez néha karbantartást a fájlokban és olyankor könnyen előre kerülhet egy újabban rögzített rekord egy törölt helyére.
Azért akarok limitet, mert esetenként sokezer rekord is lehet az eredmény (amit a helyi gépen feldolgozok és letárolok más formátumba későbbi offline munkához) és nem akarom egyszerre áthúzgálni a kapcsolaton, hanem beállított adagonként, ciklusban...
Ez volna az értelme... Másképp kellene azt csinálnom ?
ha nem akarod sorbarendezni valami szerint akkor miert akarsz limit-et? Azaz MIRE akarsz limitet? Mert egy rendezetlen halmazra limit-et mondani, ugy hogy neked nem random kellenek a rekordok eleg butasag.
ha kiadsz egy ilyet: SELECT * FROM rendelo WHERE kod='XX' AND tolt > 200, ahol XX egyenló az ominózus sor egyedi kulcsával, akkor visszakapod a sort?
amúgy biztosan 200 van benne? mert a double miatt, ha pl. 199.9999999999999999999999999999999999999999 van benne, akkor simán 200-at látsz, de azért az valójában kisebb 200-nál
Közben tovább is próbáltam a dolgot.. Más táblán is tudom reprodukálni a dolgot, de úgy látom hogy csak akkor jelentkezik a hiba, ha a feltételes LIMIT 0,500 első eredménysora egyben a tábla legelső sora is... Ha már a második rekord lenne az első eredménysor, akkor jól működik a feltételes limit 0,500 is... érdekes.
Sajnos nem néztem el... Utánanéztem közben a mysql.com on is és másnak is előjött már ez a probléma, de nem láttam egyik új verzió leírásánál sem hogy megoldották volna. Én úgy vettem észre, hogy akkor marad el a legelső sor a limit 0,500 -ban, ha a where feltételben szerepel egy bizonyos indexelt mező.
Ha nem szűrök arra a mezőre, akkor a limit is jól működik. Az indexeléssel lehet valami gond, én megoldottam a problémát egy két plusz sorral, nem törtem rajta a fejem tovább.( Az index újra létrehozása nem segített)
load data infile '/var/www/meo/meoterm.txt' into table termek fields terminated by ' ' optionally enclosed by '"' ignore 1 lines (@a,@b,@c,@d,@e,@f,@g,@h,@i,@j,@k,@l,@m,@n,@o,@p,@q,@r,@s) set gyartott_mennyiseg=replace(@i,',','.');
Egy textfájlból szeretnék adatokat importálni, de a fájlban a tizedesjel vessző (pl. 1234,15) A MySql import (Load data infile) viszont úgy működik jól, ha a jel pont (1234.15). Hogyan tudnám importkor megadni neki, hogy a vessző a tizdesjel? Sajnos a textfájl fix formátumú.
Csak nem Access-ből érkezel? Ott sem szabad összemosni az adatbázist a felhasználói felülettel. Az adatbázis SQL-ül tud (NevemTeve megírta a választ), a felhasználói felület pedig SQL parancsokat küld az adatbázisnak.
Az SQL szervernek úgy tudom, command line interface-e van. Meg gondolom, programozói is, tehát ha írsz C-ben egy GTK vagy QT felületű programot, megfelelő függvények hívásával vélhetően tudod ingerelni az SQL szervert. De egy SQL szerverben nincs semmilyen gomb.