Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Datetime-kentän null-arvojen sorttaaminen

Wiwwe [20.01.2012 19:11:07]

#

Minulla on mysql datetime-kenttä mitä käytetään ainoastaan osassa tietueista. Haluaisin järjestää kentän nousevaan järjestykseen niin että null-rivit olisivat viimeisenä. Pitääkö tehdä php:n puolella joku jippo millä järjestyksen saa muutettua tuollaiseksi?

makumaku [20.01.2012 19:43:36]

#

MySQL taitaa laittaa kaikki NULL datetime kentät nollaksi, tai se varmaan riippuu siitä miten default ja Not Null on asetettu.
Eli jompi kumpi pitäisi varmaan toimia.

SELECT * FROM taulu ORDER BY aika IS NULL, aika ASC;
SELECT * FROM taulu ORDER BY aika = 0, aika ASC;

Wiwwe [20.01.2012 21:32:41]

#

Kiitos, ensimmäinen versio lähti toimimaan kunhan osasi laittaa tuon ehdon oikein Zend_Db_Selectille.

Metabolix [20.01.2012 21:39:12]

#

makumaku kirjoitti:

MySQL taitaa laittaa kaikki NULL datetime kentät nollaksi,

DATETIME ei voi olla 0, ja jos NOT NULL -kenttään yrittää tallentaa NULL-arvon, pitäisi tulla virheilmoitus. Muutenkin 0-rivien esiintyminen kuulostaisi minusta suunnitteluvirheeltä, kun NULL on tyhjää arvoa varten.

makumaku [20.01.2012 21:58:51]

#

Juu, tuli taas kirjoitettua hieman mitä sattuu. Tarkoitin lähinnä että jos datetime kenttä on NOT NULL, niin kenttää voinee verrata pelkällä 0:lla ( ...WHERE aika = 0 ) , sen sijaan että vertailisi esim, aika = '0000-00-00 00:00:00' tapauksissa joissa aikaa ei ole talletettu.

Grez [20.01.2012 22:09:44]

#

Sinänsä ei kyllä voi kovin paljon arvostaa tietokantamoottoria joka ylipäätään antaa laittaa date-kenttään 0000-00-00

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta