Rendezés mysql néhány ritkán használt funkciók, vr-line - ingyenes e-mail

Rendezés mysql néhány ritkán használt funkciók, vr-line - ingyenes e-mail
Mintegy válogató adatok SQL lekérdezések. Szerintem tudják az összes webes fejlesztők. Elég, ha a pont egy lekérdezést ORDER BY a szükséges paramétereket, és akkor kap a kívánt eredményt. Beállított paraméterek túl egyszerű. Csak vesszővel elválasztva oszlopokat, amelyek a rendezni kívánt, és adja meg az irányt (emelkedő (ASC) vagy csökkenő (DESC)).







Ie lekérdezni, hogy a válogatás a következőképpen nézhetnek ki.
SELECT * FROM cikkek ORDER BY a_title ASC. a_date DESC

Ebben az esetben a felvétel a cikkek az asztal lesz rendezve növekvő sorrendben a_title területén, valamint a rekordok azonos értékeket a_title területén - a_date a pályán csökkenő sorrendben. Ez ebben a formában használjuk, hogy rendezze a legtöbb esetben. De vannak olyan helyzetek, amikor meg kell használni bonyolultabb szabályokat.

Az osztályozás szerint az adatok típusa

Képzelje el, hogy két asztal. Az első tartalmaz néhány rekordot (cikkek, hírek, termékek, stb), és a második - a metaadatok ezeket a feljegyzéseket. A metaadatok lehetnek bármilyen információt, pl értékelése híreket vagy színes áruk. Ebben az esetben a táblázat nagyjából a következő struktúrát.

Rendezés mysql néhány ritkán használt funkciók, vr-line - ingyenes e-mail

Ez válogatás lehet tenni az alábbi lekérdezéssel


Ez a lekérdezés megjeleníti az összes rekordot a táblázatból cikkek amely létrehozta a meta-mező színe. Nyilvánvaló, hogy a típus a területen kell a szöveget, mert m_value előre nem ismert, hogy lesznek tárolva a metaadatokat. Ebben az esetben a numerikus adatok rendezése nem megfelelő. Az a tény, hogy az ORDER BY összehasonlítja az értékek tekintetében a típus mezőre, és például válogatás emelkedő kapsz a következő értékrendet: „1”, „10”, „2”, „3”, stb







Ie hajtja végre az ilyen kérelmet meg kell határoznia, hogy mit m_value Field tekinthető numerikusan. Ez történik az alábbiak szerint.


A fordított művelet (numerikus mező rendezve szabályai szerint a szöveget) van írva egy kicsit bonyolultabb.


bal függvény egy karakterláncot tartalmazó első N karakter a húr által meghatározott első paraméter. A szimbólumok számát (N) adja a második paraméter. Ebben az esetben, az első 20 karakter (elég ahhoz, hogy átalakítsa a 8-bájtos egész egy sorban) vannak kiválasztva. Ie MySQL motor végzi rendezési sorban kapott numerikus mező értékeit.

Szeretném figyelmeztetni, hogy annak ellenére, hogy ezek a módszerek is hasznos lehet bizonyos esetekben, használatuk csökkenéséhez vezet a végrehajtási sebesség SQL lekérdezések. Ezért nem szabad visszaélni velük. Másrészt, válogatás a PHP (vagy bármilyen más nyelven) is időbe telik.

Válogató a szöveg érzékeny

A szöveges mezők, a rendezés nem érzékenyek. A legtöbb esetben ez nem helyes, mert karakterek nagybetűs „A” táblázat után jön egy kisbetűs „i”. Ie rendezni, hogy a vonal regiszter lesz található a következő sorrendben.

1. "Query Language"
2. „programozási nyelv”
3. "Query Language"

De ha még mindig kell végezni egyfajta kisbetű-nagybetű érzékeny, egyszerűen csak hozzá bináris operátor előtt a mező nevét.


Szelektálás összhangban fragmens


Válogató rekordok egy adott értékek listája

Képzelje el, hogy rekordokat valahogy kapcsolódik az évszakban. És tartsa meg ezt az információt az egyik oszlop a táblázatban. Egyértelmű, hogy egy standard rendezési lehetőséget (ábécé sorrendben), hogy gondoskodjon a sorrendben az évszakok „tavasz”, „nyár”, „őszi”, „téli” nem fog működni. Természetesen hozzá lehet rendelni minden évszakban a kódot, de van egy másik alternatív megoldás - használja a FIELD funkciót.


Ez a funkció megkeresi a megadott értéket az első paraméter, értékek között szerepel a többi paramétert, és visszatér a sorozatszámát. Amikor futtatja a lekérdezést az első paraméter FIELD funkciók átkerülnek a mező értéke a_season, és így a bejegyzések vannak rendezve a megadott sorrendben a számunkra.

Válogató vonalak hossza mentén

Ez a funkció ritkán használják, mert hossza általában egyfajta vonal nem viseli a terhelést. Azonban bizonyos esetekben hasznos lehet.


Mint látható, a „Focus” használata CHAR_LENGTH funkció, amely meghatározza a karakterek számát soronként.

Azt hiszem, akik az utolsó pár receptet, rájössz, hogy ezen a módon lehet használni szinte minden MySQL függvények. Kíváncsi lennék, ha megosztja példákat a gyakorlatban