Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
denoy
Člen
Avatar
denoy:23.5.2013 12:55

Zdravím, potřeboval bych vědět, jak docílím vytažení stejných dat z databáze, tzn. dejme tomu 10 záznamů v tabulce z toho jsou 2 stejné a já potřebuji oba tyto vytáhnout, nebo mi stačí vytažení toho "co mají společného" a podle toho je vytáhnu v dalším sql dotazu, stačí mi vědět jaké funkce bych měl použít, přiložením příkladu se nic nezkazí :D díky moc

 
Odpovědět
23.5.2013 12:55
Avatar
Kit
Tvůrce
Avatar
Odpovídá na denoy
Kit:23.5.2013 13:15
SELECT tabulka.* FROM tabulka JOIN tabulka AS druha ON tabulka.id != druha.id WHERE tabulka.hodnota = druha.hodnota;
Nahoru Odpovědět
23.5.2013 13:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
denoy
Člen
Avatar
denoy:23.5.2013 17:33

Díky, mrknul jsem se na to a pochopil zase něco novýho :) každopádně to použit nemůžu, ochromilo mi to databázi a musel jsem jí po minutě restartovat, v tabulce je něco přes 30k záznamů, tak to bude asi tím, snažší bude projet jeden po druhém a s každým hledat shodu, spouštět to budu někdy v noci cronem.

 
Nahoru Odpovědět
23.5.2013 17:33
Avatar
Kit
Tvůrce
Avatar
Odpovídá na denoy
Kit:23.5.2013 17:42

No jo, to jsi měl napsat, že máš tolik záznamů. Napsal bych to efektivněji.

Spoléhal jsem na to, že si to MySQL zoptimalizuje, což databáze SQL běžně dělávají. Mýlil jsem se.

Zkus to spustit déle než na minutu třeba v noci. Mně to jede.

Můžeš ještě prohodit podmínky s "id" a "hodnota". Vznikne tím menší pracovní soubor, který bude rychleji prohledán. Klíč, podle kterého budou tabulky joinovány, by bylo dobré indexovat.

Nahoru Odpovědět
23.5.2013 17:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
denoy
Člen
Avatar
denoy:26.5.2013 2:05

Jo, už to dělá co má, pomohly ty indexy a napoprvé to trvalo trochu déle, dík.

 
Nahoru Odpovědět
26.5.2013 2:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.