Emulation ROW_NUMBER () funkció mysql, mysql
Ebben a cikkben azt fogja mondani, hogyan kell számba venni a lekérdezés eredménye által visszaadott sorok MySQL.
ROW_NUMBER () funkció - függvényében a rangsor, visszaadja a szekvenciális sorszám, kezdve 1 az első sorban. A sorszám gyakran van szükség, amikor jelentések készítéséhez. Ez a funkció van megvalósítva MS SQL és Oracle. A MySQL, nincs ilyen funkció, de nem nehéz megvalósítani, mivel a globális változókat.
sorszámozás
Felsorolni egy string, van, hogy egy változót lekérdezést. Megmutatjuk, ez a megközelítés egy egyszerű táblázatot, amely a munkavállalók jegyzékét (dolgozók). A következő lekérdezés kiválasztja az alkalmazottak az 5. táblázat, ami számukra számok sorrendben, kezdve 1:
A fenti, kérünk:
- ROW_NUMBER definiált változó és inicializáljuk a nulla értéket;
- Értékét növeli 1 minden iterációs a kérelmet.
Egy másik technika, amely lehetővé teszi, hogy ugyanazt az eredményt elérni, hogy hozzon létre egy globális változó kilátás helyett, és a keresztmetszeti szövetség a két asztal. Egy példa egy ilyen lekérdezés:
Figyeljük meg, hogy a származtatott táblázatot kell egy álnevet a szabályok betartását a szintaxis.
Folytatása számozás Group
Hogyan határozza meg egy külön számozás minden sorban Group, Egyesült kifejezést ORDER BY vagy GROUP BY. Például, hogy szimulálni a következő lekérdezést:
Létre kell hoznunk a fizetési listán, amelyben az egyes fizetési felel meg egy bizonyos számot. Annak érdekében, hogy a kívánt eredmény eléréséhez, szükségünk van két változó: az egyik - a sorrendben sorszám, a másik -, hogy tárolja az ügyfél-azonosító az előző sorból, hogy hasonlítsa össze a jelenlegi. A lekérdezés a következőképpen néz ki:
Mi használjuk a CASE nyilatkozatot, hogy értékelje a feltétellel: ha az ügyfél szám ugyanaz marad, növeljük a sor száma 1, különben mi meg a sor számát 1. Az eredmény ugyanaz lesz, mint a fenti képen eredményezett.
Most majd ugyanazt az eredményt elérni technika segítségével nyert asztal és cross-lekérdezés:
Tehát, megtanultuk, hogy kövessék a számozás lekérdezés húrok MySQL.
Fordítása a cikk «MySQL ROW_NUMBER emuláció» készítettünk egy csapat barátságos Web design projekt tól Z-ig