[Megoldva] Mysql - választás 4 dátum mező közül

Sziasztok,

A következő a kollégám problémája, amit nem tud megoldani:
Egy sorban van 4 dátummező. Ebből kellene kiválasztani a legkisebb dátumot és ez alapján kellene rendeznie úgy, hogy csak a valódi dátumot veszi figyelembe. pl. a 0000-00-00 ne vegye figyelembe. A szerver 5.0.32.
Tudna valaki ehhez egy jó 5letet?

Köszi,
Szabek és Pisti

Hozzászólások

Tehát
1) megnézni, melyik oszlopban van a legkisebb dátum
2) azon oszlop alapján rendezni, de a 0000-00-00 -os sorokat kihagyni?

SELECT MIN( a ) , MIN( b ) , MIN( c ) , MIN( d ) FROM `tabla1`

e négyből legkisebbet, majd:

sprintf(sün, "SELECT * FROM tabla1 WHERE %s != 0000-00-00 ORDER BY %s", mező, mező);

Csak ezem van sajnos:
"Szerver verzió: 5.1.36-community-log"
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Szia,

Köszi a gyors választ, de ez nem igazán az, ami kellene.
Ami a kollégának kellene, az valahogy így néz ki:
id,datum1,datum2,datum3,datum4
1,2010-06-21, 2010-12-31, 2010-10-10, 0000-00-00
2,2008-12-31, 2012-12-31, 0000-00-00, 2009-12-31
3,2014-12-31, 2009-10-31, 2010-05-10, 2010-12-31

ez alapján a sorrend: 2 (2008-12-31), 3 (2009-10-31), 1 (2010-06-21)

Szóval valami hasonló kellene...

Köszi,
Sz. + P.


     select id, min_d
     from (
             select id, least(datum1,datum2,datum3,datum4) as min_d
             from tbl
          ) t
     order by min_d asc  

nem szep, de legalabb csunya es lassu:)


SELECT
IF(
a>'0000-00-00' AND a<b AND a<c AND a<d,
a,
IF(
b>'0000-00-00' AND b<c AND b<d,
b,
IF(
c>'0000-00-00' AND c<d,
c,
d
)
)
)
AS datum
FROM teszt
ORDER BY datum

select id, least(if(datum1='0000-00-0','9999-00-9',datum1), etc...

es igy a 0000-t is kezeli. persze kiveve ha mind a 4 az :-)

Köszönjük a megoldásokat! THavoc megoldása lett a nyerő. Köszi még1xer.