Jump to content
php.lv forumi

ORDER un IF


Aleksandrs

Recommended Posts

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 by Aleksandrs
Link to comment
Share on other sites

".. 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 by xPtv45z
Link to comment
Share on other sites

Šā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 by Aleksandrs
Link to comment
Share on other sites

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 by Grey_Wolf
Link to comment
Share on other sites

×
×
  • Create New...