Aleksandrs Posted August 28, 2007 Report Share Posted August 28, 2007 (edited) Vai ir iespējams kārtot datus mysql(4.1) datubāzē, vienā vaicājumā, pēc šādiem kritērijiem ? 1. Kārtot visus tukšos laukus augšā. 2. Kārtot visus aizpildītos laukus pēc id. Vizuāls piemērs: Tabula(id|lauks) 1|a 2| 3|c 4| Vēlamais rezultāts: 4| 2| 3|c 1|a Atradu variantu: ORDER BY IF(lauks='', ' ', id) ASC Edited August 28, 2007 by Aleksandrs Link to comment Share on other sites More sharing options...
xPtv45z Posted August 28, 2007 Report Share Posted August 28, 2007 (edited) ".. ORDER BY lauks ASC, id DESC" Vēl var arī kaut kā tā taisīt, ja ar order nesanāk select * from `tabula` where lauks='' union select * from `tabula` where lauks<>'' order by id desc Edited August 28, 2007 by xPtv45z Link to comment Share on other sites More sharing options...
Aleksandrs Posted August 28, 2007 Author Report Share Posted August 28, 2007 (edited) Šāds variants bija sākumā, kad sapratu, ka neder, jo tad viss tiek pakārtots pēc 'lauks' un id secībai tur vairs nekas nekārtojas. Rezultāts būtu šāds(neder): 4| 2| 1|a 3|c Ar union tas jau sanāk gandrīz kā divi vaicājumi. Būs jāpatestē ātrdarbība, kurš ātrāk. Edited August 28, 2007 by Aleksandrs Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 28, 2007 Report Share Posted August 28, 2007 (edited) Aleksandrs --> tu tachu pats topika nosaukumaa ierakstiji atrisinaajumu ... ;) MYSQL lieliski atbalsta IF konstrukciju (nu sintakse mazliet atskjiraas no PHP ) Un datus var atlasiit tieshi taa kaa tev vajag... P.S. pats esmu taisijis valutas izvadiishanu lai augsa buutu svariigaakaas un parejaas peec tam alfabeeta kartiibaa... edit: te buus neliels piemers: SELECT ...ORDER BY IF(lauks = '', 0,1 ), id ASC Edited August 28, 2007 by Grey_Wolf Link to comment Share on other sites More sharing options...
Recommended Posts