Sql tömb ultolsó sorának elemeit C++-ban hogyan tudom lekérdezni? Az igazság az, hogy nekem egy olyan függvény kellene, ami egy intet dob vissza, hogy hány sorból áll a tömmb, mert nem lehet tetszóleges hosszú a tömb amit be tudok tölteni, és a végéről kellene kezdenem. Pl az utlsó 500 elem.
Ja elfelejtettem:
SQLite, és mysql, most még sqlite-ben megy, de mysql-lesz belőle.
- 1827 megtekintés
Hozzászólások
Qt? (Marmint Qt-ban programozol, most meg SQLite-tal es kesobb MySQL-re akarsz atterni?)
- A hozzászóláshoz be kell jelentkezni
Nem. Ultimate++. Gondolkodtam QT, és UPP között, de az UPP-ban annó már írtam, egy ehhez nagyon hasonló, progit, íy 50%-ban már volt egy kész alapom.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
Mennyire jó az UPP mostanában?
Elégedett vagy vele?
Én 3-4 éve próbáltam utoljára, akkor egyszerű kis párszáz-soros programoknak megfelelőnek tűnt, komolyabb programba nm mertem belevágni vele, de nagyon szimpatikus cucc volt.
- A hozzászóláshoz be kell jelentkezni
SQLite-ot nem ismerem, de ha úgyis mysql lesz belőle akkor fölösleges sqlite-tal is szórakozni.
mysql-ben (és minden más általam ismert sql-ben) a tábla (nem tömb, szerintem táblára gondoltál) elemszáma:
select count(*)
from tablename;
de az okosok azt mondják, hogy ez így nem hatékony, mert felolvassa az egész táblát, ezért célszerűbb kinézni egy mezőt, javaslom a primary key-t. Ha nincs, akkor csinálj.
select count(pk_name)
from tablename;
Ha pedig az utolsó 500 elem kell, akkor célszerű egy autoincrement pk-t felvenni, ha az van akkor gyerekjáték:
select *
from tablename
order by pk_name desc
limit 500;
- A hozzászóláshoz be kell jelentkezni
ma már a count(*) automatice kiválasztja a PK-t, ha van, vagy olyan indexet számol meg, ami leképezi a teljes táblát. ha nincs index, akkor kezdi el tekerni a táblát.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Köszi a választ, de szerintem valami Bug-ba futottam, mert a Count(SqlAll()) -ami ekvivalens a Count(*)-al nekem-. mindíg 1-et ad vissza akármit teszek. Valahogy megkerülöm.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
ha csak az utolso 500 elem kene, akkor en sql-ben forditott sorrendbe rendeznem es csak az elso 500at kernem le.
udv.:
-szobi.
- A hozzászóláshoz be kell jelentkezni
Nem szívesen rendeznék több 10000 sort azért, hogy megkerüljem az utolsó legnagyobb PK-jú elem lekérését. Egyébként igaz. Megoldás amit írsz csak marha lassú lenne szerintem.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
Tisztességes db motornak illik a pk alatt lévő indexet használni ugyanazon oszlopos rendezéskor, azaz tkp. nem rendezni, csak index mentén olvasni.
Nem tudom, csak sejtem, hogy a mysql manapság van ennyire tisztességes.
- A hozzászóláshoz be kell jelentkezni
Igen, a MySQL a PK-hoz csinal egy UNIQUE INDEX-et is, csak nem dicsekszik vele.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ahogy lx is irta, azert nezd meg szerintem... indexelt mezore rendezesnel annyira marha lassu nem lesz.
-szobi.
- A hozzászóláshoz be kell jelentkezni
Miért pont az utolsó 500 sor?
Csak mert ha úgyis rendezve van, akkor a rendezést fordítsd meg és használj
LIMIT 500
-t hogy csak az első 500-at kapd meg.
- A hozzászóláshoz be kell jelentkezni