Zadejte hledaný výraz...

MySQL zlozitejsie vyhladavanie

Patres
verified
rating uzivatele
1. 1. 2010 14:06:13
Nazdar
Potreboval by som mensiu pomoc s vyhladdavanim v MySQL tabulkach, ak niekto
viete, tak som vdacny :-)
Takze mam napriklad:
Tabulka Konta
--------
ID
NAME
BLA
BLA2
BLA3
Tabulka Vybavenie
--------
ID_KONTO
ID_VYBAVENIE
Tabulka Vybavenie_nazvy
--------
ID
NAME
A teraz potrebujem vyhladat/vytiahnut napr. vsetky konta, kt. maju Vybavenie s
ID napr. 1 alebo 2 alebo 3. Ako to zrealizovat?
1. 1. 2010 14:06:13
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429754
Když bych chtěl konta, u kterých je ID_VYBAVENIE 5 nebo 6, tak:
1. 1. 2010 14:18:46
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429753
Patres
verified
rating uzivatele
26. 1. 2010 17:45:53
Dakujem. Pomohlo mi to. Ale co ak chcem namiesto ALEBO dat A ZAROVEN... cize vsetky podniky, kt. maju vybavenie 5 a zaroven 6?... je to mozne?
26. 1. 2010 17:45:53
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429752
node
verified
rating uzivatele
(5 hodnocení)
28. 1. 2010 05:02:55
28. 1. 2010 05:02:55
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429751
Patres
verified
rating uzivatele
29. 1. 2010 16:09:21
Ďakujem, ale je to to isté, čo predtým, akurát, že doplnené o názvy, kt. navyše nepotrebujem. Teraz to nájde aj ked bude vybavenie 5 ALEBO 6. Ja potrebujem 5 A ZAROVEN 6 :banghead:
29. 1. 2010 16:09:21
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429750
node
verified
rating uzivatele
(5 hodnocení)
29. 1. 2010 16:55:53
WHERE v.id_vybavenie = 5 OR v.id_vybavenie = 6;
29. 1. 2010 16:55:53
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429749
Patres
verified
rating uzivatele
29. 1. 2010 20:24:19
ved to je stale OR - ALEBO... lenze AND nefunguje...
29. 1. 2010 20:24:19
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429748
node
verified
rating uzivatele
(5 hodnocení)
29. 1. 2010 20:55:34
Neviem presne o co ti ide ale mozno:
WHERE v.id_vybavenie IN(5,6) OR (v.id_vybavenie = 5 AND v.id_vybavenie = 6);
29. 1. 2010 20:55:34
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429747
Patres
verified
rating uzivatele
30. 1. 2010 20:14:39
No že proste chcem vyhladat vsetky podniky, ktore maju vybavenie 5 A ZAROVEN 6... lenze to v.id_vybavenie = 5 AND v.id_vybavenie = 6 vracia prazdny vysledok :banghead: Neviem, ze ako to vyriesit...
30. 1. 2010 20:14:39
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429746
tom11111
verified
rating uzivatele
30. 1. 2010 23:06:12
30. 1. 2010 23:06:12
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429745
Patres
verified
rating uzivatele
31. 1. 2010 04:06:48
Super. Ďakujem :thumbup:
Ešte by ma zaujímalo, že aká je náročnosť takéhoto dotazu? Nie je to nič extra zaťažujúce?
31. 1. 2010 04:06:48
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429744
hm
verified
rating uzivatele
(20 hodnocení)
31. 1. 2010 05:29:24
Napsal Patres;447228
Super. Ďakujem :thumbup:
Ešte by ma zaujímalo, že aká je náročnosť takéhoto dotazu? Nie je to nič extra zaťažujúce?
napln tabulky daty (idelane statisice zaznamu) a dotaz spust (treba v phpmyadminu ktery ukazuje jak dluho dotaz trval) idelani doba zpracovani dotazu jsou jendnotky milisekund (0,001 až 0,009 sekundy) u slozitych dotazu, ktere se neprovadeji nekolikrat do sekundy lze tolerovat delsi dobu (do desetiny sekundy)... pokud tomu tak neni, pak je problem hlavne ve spatnych indexech... nebo spatne navrzenem dotazu, dotaz ktery jsem tu videl v poslednim prispevku je dost agresivni a podle meho u statisicu zaznamu bude fungovat velmi pomalu a databazi bude dlouhodobe pretezovat... to se sice da resit cachi na strane scriptu (php) ale to uz nebude ciste reseni.
31. 1. 2010 05:29:24
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429743
tom11111
verified
rating uzivatele
31. 1. 2010 16:38:28
Čekal jsem, kdo se ozve :-)
I já zpozorním, kdykoliv se v dotazu objeví nějaký "nested" select. Ale v tomto konkrétním případě to podle mě nebude mít valný dopad na výkon. Proto jsem ho uvedl.
V každém případě by měl existovat index minimálně na pole konta.id a vybavenie.id_vybavenie. Pokud při definici DB používáš důsledně i definici cizích klíčů, tak je tam asi už máš.
Ale abych jen neobhajoval mé první řešení, nabídnu i druhé, čistě pomocí JOIN
(doufám, že tam nemám překlep)
Definitivní rozhodnutí, které je lepší, lze provést pouze testem nad skutečnými daty. Výsledek muže ovlivnit i statistické rozložení dat v tabulkách (např. jestli tam převažuje nějaký typ vybavení, jestli těch typů je hodně nebo málo a tak). Jak jsem už psal, z mé křišťálové koule jsem usoudil, že by ti měl vyhovovat i první dotaz, a zdál se mi "pochopitelnější" a jednoduše rozšiřitelný na další podmínky :-)
Offtopic pro AlesiBoss: Kdysi si napsal topic o tvém eshopu s čajem, ale po asi dvou příspěvcích a drobmém flame zůstal nedokončem. Nechtělo by se ti to ještě třeba jedním příspěvkem nějak shrnout a uzavřít?
Diky, Tom
31. 1. 2010 16:38:28
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429742
hm
verified
rating uzivatele
(20 hodnocení)
31. 1. 2010 17:09:07
Napsal tom11111;447639
Offtopic pro AlesiBoss: Kdysi si napsal topic o tvém eshopu s čajem, ale po asi dvou příspěvcích a drobmém flame zůstal nedokončem. Nechtělo by se ti to ještě třeba jedním příspěvkem nějak shrnout a uzavřít?
ais se k tomu ted nedostanu :) uvidim casem
31. 1. 2010 17:09:07
https://webtrh.cz/diskuse/mysql-zlozitejsie-vyhladavanie#reply429741
Pro odpověď se přihlašte.
Přihlásit