Diskuze: MySQL - stejné hodnoty

Ostatní jazyky SQL SQL a databáze MySQL - stejné hodnoty

Avatar
denoy
Člen
Avatar
denoy:

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
Redaktor
Avatar
Odpovídá na denoy
Kit:
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:

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
Redaktor
Avatar
Odpovídá na denoy
Kit:

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:

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

 
Nahoru Odpovědět  +1 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.