Természetes rendezési MySQL rendezés feltételeit, mysql
Ebben a cikkben bemutatjuk a különböző módszerek természetes MySQL szortírozás alkalmazásával ORDER BY körülmények között. Kezdjük egy egyszerű lecke adatokat.
Tegyük fel, hogy van egy tábla elemeit. amely két oszlop: id és item_no. Ahhoz, hogy hozzon létre egy táblázatot elemeket használjuk a nyilatkozatot CREATE TABLE:
Az általunk használt INSERT utasításban. hogy adjunk néhány adatot az asztalra tételek:
Amikor kiválasztjuk az adatokat, és rendezni őket item_no alapján. megkapjuk a következő eredménnyel:
Ez nem az, amit vártunk. Azt akartuk, hogy az eredmények a következők:
Ez az úgynevezett természetes válogatás. Sajnos, a MySQL nem biztosít a felhasználók számára egy beépített script vagy természetes rendezési funkció. ORDER BY utasítás rendezi a sorait lineárisan, azaz Egy karakter egy időben, kezdve az első karakter.
Hogy oldja meg ezt a problémát, először elosztjuk item_no oszlop két oszlop: előtag és az utótag.
prefix oszlop tartalmazza a digitális rész item_no. és az utótag oszlop - a levél. Ez lehetővé teszi számunkra, hogy rendezni az adatokat a két oszlop, a következő lekérdezést:
Adatkérésben rendezése először alapján számszerű majd alfabetikus sorrendben, megkapjuk a kívánt eredményt.
A hátránya ennek a megoldásnak, hogy mielőtt hozzáadhat vagy frissíteni az adatokat, meg kell osztani item_no két részre. Ezen kívül, meg kell kombinálni a kettőt egyetlen oszlop, ha úgy döntünk adatokat.
Ha item_no adatait tartalmazza a szabványos formátumban, akkor a következő lekérdezést végrehajtani egy természetes rendezési nélkül pelenkázó szerkezetét.
Ebben a lekérdezésben először konvertálni item_no adatokat egy egész szám frakciókat használata nélkül a CAST funkciót. És azt is használja a feltétel ORDER BY. rendezni a sorokat az első numerikus jel, majd betűrendben.
Nézzünk egy szabványos adatok, amelyekkel gyakran kell foglalkozni:
Szeretnénk rendezni az eredmény a következő volt:
Ennek elérése érdekében, fel tudjuk használni a hosszát funkciót. Felhívjuk figyelmét, hogy a hossza függvény a megadott sztring hosszát.
Az ötlet az, hogy rendezni item_no hosszúságú adatokat, majd az oszlop értéke a következő lekérdezést:
Mint látható, az adatok rendezése természetesen.
Ha minden a fenti megoldások nem vonatkozik az Ön helyzetét, akkor el kell végezni a természetes fajta átmenő különböző alkalmazásokhoz.
Néhány természetes nyelvek támogatják a rendezés funkciót, például a PHP támogatja natsort () függvényt. amely rendezi a tömböt használ természetes rendezési algoritmusok.
Fordítása a cikk «MySQL Természetes válogató ORDER BY clasuse» készítettünk egy csapat barátságos Web design projekt tól Z-ig