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




Kapcsolódó cikkek