Jump to content
php.lv forumi

Recommended Posts

Posted (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 by Aleksandrs
Posted (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 by xPtv45z
Posted (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 by Aleksandrs
Posted (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 by Grey_Wolf
×
×
  • Create New...