- saxus blogja
- A hozzászóláshoz be kell jelentkezni
- 1102 megtekintés
Hozzászólások
a limit 2 order by nelkul eleg veszelyes semmi sem garantalja hogy pl egy sql dump-restore utan ugyanaz a ketto lesz a visszateresi ertek.
-- Just my 2 cents.
- A hozzászóláshoz be kell jelentkezni
ORDER BY RANDOM() esetén sokat nem számít a sorrend. ;)
De azért kössz, hogy szóltál.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Ez adatbazis-kezelo specifikus megoldas, nem altalanos SQL. A 'Hasznos SQL keresek' cim felrevezeto lehet masok szamara.
MySQL != SQL (Es hogy tovabb bonyolitsam, a kulonbozo ANSI szabvanyok es azok kompatibilitasi szintjei miatt SQL <> SQL ;) )
- A hozzászóláshoz be kell jelentkezni
Szó nem volt MySQL-ről, nem tudom hogy jött ide. Többnyire PostgreSQL-t használok, az megette. Innentől kezdve nekem elég.
MySQL egyébként megeszi már a WHERE akarmi IN (SELECT...) kéréseket?
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Igen, legalábbis nekem ezt a lekérdezést bevette:
SELECT DestinationNumber, SendingDateTime FROM sentitems WHERE ID IN(SELECT ID FROM sentitems WHERE SendingDateTime BETWEEN '2009-01-01' AND '2009-01-10') ORDER BY DestinationNumber;
Más kérdés, hogy lekilleztem, mert iszonyat sokáig futott volna, ugyanis elég nagy adatbázison engedtem el.
MySQL 5.0.32-Debian_7etch1-log
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
mysql-5.0.32 meg biztosan nem, en is futottam vele egy kort...
En neztem be, egy masik szituaciora gondoltam, ez mukodik.
- A hozzászóláshoz be kell jelentkezni
Ugy jott ide, hogy velelmeztem, h. arrol van szo. Tevedtem.
A dolog pikanteriaja, hogy bar a LIMIT resze a szabvanynak, a legtobb adatbazis-kezelo nem implementalja. Sem az Oracle, sem az MS SQL, sem a DB2 nem igy csinalja, bar termeszetesen tudnak ilyesmit.
Arra celoztam az elozo hozzaszolasommal, h. celszeru indikalni azt, h. milyen adatbazis-kezelore vonatkozik a kerdes, meg abban az esetben is, ha ANSI SQL kod a cel.
Azt hiszem, h. a MySQL 5.1 (?) boldogul az IN predikatumba agyazott allekerdezesekkel. Van aki erre pontosabb valaszt tud adni, mert en elsosorban Oracle teruleten vagyok kepben.
- A hozzászóláshoz be kell jelentkezni
IN mar ment 5.0ban is IMHO :)
- A hozzászóláshoz be kell jelentkezni
Ullman konyvek?
- A hozzászóláshoz be kell jelentkezni
olvashatnál néha levelet, múltkor küldtem e-mailben egy kis érdekességet hátha szerettél volna még mysqlt tesztelni :<
- A hozzászóláshoz be kell jelentkezni
o ize igen? mikor? :D
varjal megkeresem :)
update: megvagy, csak atugrotta a szemem. valaszoltam. koszi! :)
- A hozzászóláshoz be kell jelentkezni
Tulajdonkeppen mit is akarsz csinalni?
Van ket relaciod, amibol az egyik a termekeket irja le, a masik a kategoriakat? A termek relacioban szerepel a kategoria azonositoja egy attributumkent? Ha a kategoriaid mezo azonos mind a ket relacioban, akkor hasznalhatsz termeszetes illesztest, kevesebbet kell gepelni. Ha id alapjan szursz, akkor nem kell belso lekerdezes, ami tovabb noveli a lekerdezes futasi idejet.
SELECT *
FROM termekek, kategoriafa
WHERE kategoriafa.katid = termekek.katid AND
(termekek.katid = ? OR UPPER(kategoriafa.katnev) LIKE UPPER('%?%'))
LIMIT N
? = adott kategoria
Ha jol tippelem a problemat, akkor en igy irnam le... ahogy en elnezem a fent szereplo kod minden kategoriabol ami a kategoriafaban szerepel lekerdez 2 elemet.
A Panem kiadasaban megjelent Adatbazisrendszerek nem olyan rossz valasztas. De ha inkabb HOWTO jellegut szeretnel, akkor talan van valami olyasmi, hogy SQL fejtorok.
---
http://www.aigeruth.hu
- A hozzászóláshoz be kell jelentkezni
Nem, kategóriánként kettő elemet. Arra a fenti SQL kód jó.
Az SQL fejtörőkön gondolkodtam már, valahol olvastam már róla itt. Csak jelenleg a Kiskapu kiadó által kiadott Programtervezési mintákat olvasom. (Az marhajó könyv egyébként. Ha van valami hasonló SQL-hez is - vagy akár OOP-s fejlesztéshez - érdekelne az is.) Bár szerintem nyitok ezeknek egy témát a fórumban majd.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
(Adott kategórián belül N elem lekérdezése) - engem ez picit felrevezetett.
Mas megoldas hirtelen nem jut eszembe. Valami olyasmit probalnek meg, hogy a termekek tablat a kategoria szerint onmagara illesztem, es kivalasztanam azokat sorokat, ahol nem egyforma a ket termekid, es csak kulonbozo katid-val rendelkezo sorokat valasztanek ki, es ezekbol csak egyet. Ekkor a belso lekerdezes meg mindig kiesik. Persze a kapott informaciot feldolgozni kicsit macerasabb, mivel parban jonnek ki kategoriankent az adatok. Kerdes, hogy mennyire sebessegkritikus a dolog.
---
http://www.aigeruth.hu
- A hozzászóláshoz be kell jelentkezni
nee. azt NE OLVASD.
a konyv jo. alapmu. angolul. :)
(ha a konyv amirol irsz nem a GoF: design patterns magyarositasa amit en fogtam a kezemben, akkor mea culpa. de nagyon szar olvasni magyarul a patternneveket...)
- A hozzászóláshoz be kell jelentkezni
Ez. Tényleg elég izé benne az agyonmagyarítás ("elvont osztályok", hideg kiráz tőlük), de legalább oda van írva angolul is.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni