| Autor | Zpráva | ||
|---|---|---|---|
| jaaaja Profil * |
#1 · Zasláno: 4. 1. 2009, 11:32:05
Dobrý den chtel bych se Vás zeptat jestli jde v SQL dotazu udět nějak definice aby SQL zpracoval jen prvních třeba 10 výsledku a pak ukončil operaci.
Např "SELECT * count(10) WHERE ... " Pokoušel jsem se projízdet příkazy sql a nic v tom smyslu jsem tam nenašel jen ty podmínky a count ale tomu moc nerozumim když tak mi prosím nejak poradte budu moc vděčny s pozdravem |
||
| Alphard Profil |
#2 · Zasláno: 4. 1. 2009, 11:34:12
limit 10
|
||
| jaaaja Profil * |
#3 · Zasláno: 4. 1. 2009, 11:41:14
Děkuju moc za radu
Problem: kdyz použiju limit 10 tak mi naběhne načítaní page na 3 vteriny z 0.03 problem je že načte celou databazi od podmínky WHERE az do konce dotazu ( ne jen ten filtrovanej LIMIT 10 ale vše do casche a za pak vypíše výsledek ). Prosím neni jeste nejake reseni jak to omezit? Děkuju |
||
| Mastodont Profil |
#4 · Zasláno: 4. 1. 2009, 11:42:07
jaaaja
Jak přesně tvůj SELECT vypadá? |
||
| Mike8748 Profil |
#5 · Zasláno: 4. 1. 2009, 11:44:03
jaaaja
a struktura tabulky? indexy tam mas? taky by bylo vhodny pouzit ORDER BY a ty vysledky podle neceho tridit |
||
| jaaaja Profil * |
#6 · Zasláno: 4. 1. 2009, 11:56:53
testuju to na tomhle a mojim cilem je vypsat jen např 10 zaznamu od toho data xy ale nechci aby se mi načítaly všechny zaznamy .. ( počet zaznumu v jakým datu končí ten 10 výsledek neznám )
nejjednodužší by bylo tam nejak implementovat neco ve smyslu count(10) limit to nezastaví ten načte vše od where dolu Děkuji SELECT * FROM 1a_rss LEFT JOIN 1_menu ON 1a_rss.level=1_menu.id_m LEFT JOIN rss_server ON 1a_rss.server_name=rss_server.id_s WHERE id_s = server_name AND date < '2009-01-03 15:00:54' UNION ALL SELECT * FROM 2a_rss LEFT JOIN 2_menu ON 2a_rss.level=2_menu.id_m LEFT JOIN rss_server ON 2a_rss.server_name=rss_server.id_s WHERE id_s = server_name AND date < '2009-01-03 15:00:54' UNION ALL SELECT * FROM 3a_rss LEFT JOIN 3_menu ON 3a_rss.level=3_menu.id_m LEFT JOIN rss_server ON 3a_rss.server_name=rss_server.id_s WHERE id_s = server_name AND date < '2009-01-03 15:00:54' UNION ALL SELECT * FROM 4a_rss LEFT JOIN 4_menu ON 4a_rss.level=4_menu.id_m LEFT JOIN rss_server ON 4a_rss.server_name=rss_server.id_s WHERE id_s = server_name AND date < '2009-01-03 15:00:54' UNION ALL SELECT * FROM 5a_rss LEFT JOIN 5_menu ON 5a_rss.level=5_menu.id_m LEFT JOIN rss_server ON 5a_rss.server_name=rss_server.id_s WHERE id_s = server_name AND date < '2009-01-03 15:00:54' ORDER BY date DESC LIMIT 10 |
||
| jaaaja Profil * |
#7 · Zasláno: 4. 1. 2009, 12:24:55
nebo nejde nejak do SQL vnořit podminku + přidaval $i++ do okruhu a při naplnění SQL viz např count(5) udelat v nejakym smyslu break nebo vše vyhodnocoval jako NULL nebo vše nějak přeskakoval a už nic nezpracovával?
Děkuji moc ale asi to nebude možný podle reakci :/ |
||
| Kajman_ Profil * |
#8 · Zasláno: 4. 1. 2009, 12:32:50
Limit zkuste dát ke všem dotazům, které zazávorkujte a pak ještě limit hoďte na konec.
|
||
| jaaaja Profil * |
#9 · Zasláno: 4. 1. 2009, 12:43:27
Kajman_
Děkuji moc máte čistou pravdu fakt to funguje, měl jsem problém když jsem se pokoušel poprvé přidavat limit zvlast ke všem selectum tak tedka jsem zjistitl že jen ten poslední psanej select bez zavorek mi vždy psal chybu, proto jsem tu variantu zavrhl a myslel jsem že je to nefunkční a daval jsem limit jen na konce.. Máte čistou pravdu takhle to perfektne funguje. Děkuji Vám doopravdy moc za tu radu. Už jsem tu vymejšlel kdo ví co. __ PS: pokusim se tu nekomu taky vratit díky moc všem |
||
|
Časová prodleva: 17 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0