hétköznapok és a mysql
Helló!
Megoldható-e tisztán, elegánsan mysqlben a következő probléma: van két oszlopom, date1, és date2 DATE típusúak. Amennyiben date2 valid, be kell másolni date1 helyére, amennyiben nem, akkor egy valid random dátumot kell bemásolni.
Date2, vagy a random dátum is csak akkor valid, ha az aktuális hónap valamely hétköznapjára esik.
Persze ezt is megcsináltam egy php szörnykóddal, de Ti tuti tudtok mondani valami ütős query-t amit szebb.
(+ valakinek nincs tippje a szerverek topicban feltett kérdésemhez? Eléggé elakadtam.)
■ Megoldható-e tisztán, elegánsan mysqlben a következő probléma: van két oszlopom, date1, és date2 DATE típusúak. Amennyiben date2 valid, be kell másolni date1 helyére, amennyiben nem, akkor egy valid random dátumot kell bemásolni.
Date2, vagy a random dátum is csak akkor valid, ha az aktuális hónap valamely hétköznapjára esik.
Persze ezt is megcsináltam egy php szörnykóddal, de Ti tuti tudtok mondani valami ütős query-t amit szebb.
(+ valakinek nincs tippje a szerverek topicban feltett kérdésemhez? Eléggé elakadtam.)
UPDATE
FROM_UNIXTIME()
egy intet alakit timestampre, szoval oda barmilyen int tipusu egesz szamot beszurhatsz.Arra figyelj, hogy a
RAND()
hasznalat ilyen formaban nem tudom, mennyire replication safe, szoval ha replikalt kornyezetben kell futnia, tedd be PHP-bol a random datumot. Ha most nem is fontos, mindenkeppen dokumentald le, kesobb fontos lehet.Where feltetelt meg irj magadnak, amilyet szeretnel. :)
Köszi a választ, arra
A where ág nem kell, mert minden date1-et updatelni kell (egy cronal fut ez le havonta), de az if nem vizsgálja, hogy hogy az aktuális hónapban vagyunk-e, de gondolom ezt egy, az eddigieket körbefogó feltétellel meg tudom oldani.
IF
Egyébként, ha nem fogalmaztam
Stored procedure
Nem szeretném feltétlenül
Arra is gondoltam, hogy php-ban előállítani egy listát, a lehetséges napokból (3,4,5,7,8,11,12,13,14...), és mysql-ben randomizálni ebből a listából, vagy megfordítva a gondolatot, átadni, hogy mely napok esnek hétvégére, és azok kivételével választani ki egy napot.
Sajnos nem ismerem kellőképpen a mysql eszközeit ahhoz, hogy ilyen elképzeléseket megvalósítsak, főleg nem úgy hogy az nem csak működik, hanem hatékony is. Ezért kérdezlek titeket. :)