Autor Zpráva
jaaaja
Profil *
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
limit 10
jaaaja
Profil *
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
jaaaja
Jak přesně tvůj SELECT vypadá?
Mike8748
Profil
jaaaja
a struktura tabulky? indexy tam mas?
taky by bylo vhodny pouzit ORDER BY a ty vysledky podle neceho tridit
jaaaja
Profil *
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 *
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 *
Limit zkuste dát ke všem dotazům, které zazávorkujte a pak ještě limit hoďte na konec.
jaaaja
Profil *
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
Toto téma je uzamčeno. Odpověď nelze zaslat.