Materialized views in MySQL
9 naročnikov
9 naročnikov
Hej,
Eto, sem končno začel pisat tisti obljubljeni blog, nekaj postov je že na njem, pa začnimo kar s prvim.
Komentarji seveda dobrodosli, na clanek seveda, komentarji na izvedbo bloga in njegov dizajn me trenutno ne zanimajo ;) Mogoce kdaj drugic v temi Recenzije spletnihi strani :P
74 odgovorov
Kako pa bi tole pravilno napisal ?
SELECT * FROM povezave
WHERE TIMEDIFF(datum_cas_prikazi
, '2002-01-01 00:00:00') > 0)
ORDER BY id
DESC LIMIT 15
s tem da bi tisti datum generiral s php ... današnji datum in čas, skratka rabil bi 15 zapisov iz tabele, s tem da tistih 15 katerih datum čas je manjši od trenutnega ... druga vrstica je že tako malo čudna :S
Sem že poštudiral kaj bi rad.
Sicer ne poznam mysql ampak moraš narediti nekaj takega:
SELECT * FROM povezave
WHERE datum_cas_prikazi
< CURDATE()
ORDER BY datum_cas_prikazi
DESC
LIMIT 15
Ja za datum bi načeloma šlo ...
mysql> SELECT CURDATE();
-> '1997-12-15'
mysql> SELECT CURDATE() + 0;
-> 19971215
s tem da rabim še čas, da si lepo vzamem uro časa preden grem v šolo, potem pa se vsebina cel dav, prikazuje, v smislu, vsako uro nekaj novega. :p
Edit: seveda ... še ena vrsta, pa noter čas ... p'a potem AND cas
< CURTIME() samo potem, bo problem ker CURTIME velja tudi za novice od včeraj ... tako mi prikaže vse novice do tistega časa za danes in včeraj, ne pa novic za včeraj po trenutnem. Nekako bi moral vse z eno tabelo, pa primerjat datum in čas na enkrat ...
HeXeR, ce bi rad vrednosti, ki jo vraca CURDATE() kaj dodal ali odvzel, uporabi funkcijo DATEADD() oziroma DATESUB().
Je pa tako, kot pravi frenky, pojma nimam, kaj bi rad dosegel :)
v bazi imam zapise ... en od podatkov v tabeli je tudi datum_cas_prikazi
, sedaj pa če je datum_cas_prikazi
npr:
id - datumcasprikazi
id1 - 1.1.2000 01.31.00
id2 - 8.4.2007 09.30.00
id3 - 8.5.2007 03.30.00
id4 - 8.5.2007 06.30.00
id5 - 7.5.2007 07.30.00
id6 - 7.5.2007 02.30.00
id7 - 9.5.2007 09.30.00
in če na datum 8.5.2007 ob 03.30.00 zahtevam podatke, dobim samo, id1, id2 , in id3.
SELECT * FROM `povezave` WHERE `datum_cas_prikazi` <= NOW();
verjetno zelis tole, kajne? kje je problem? razen, ce imas ti polje datum_cas_prikazi
tipa text, pa notri zapisujes datume v takem formatu, kot si zapisal zgoraj... potem si pecen :)
Ja, prav tako je ... :S, čeprav imam samo 2 testna zapisa, tako da nisem pečen in lahko še spreminjam :D, v kak format pa morem dat datum ? Oz. v kakem formatu je NOW() ?