Automatisch waardes veranderen in MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen G

Jeroen G

27/08/2008 15:37:00
Quote Anchor link
Datamodel:

Id (auto int11) | DateCreated (datetime) | New (int1 default:0)

Vraag:

Is het mogelijk om binnen MySQL (dus zonder php trigger) de 'New' kolom automatisch te laten vullen met een 0 wanneer de DateCreated meer dan 7 dagen in het verleden ligt?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
 
PHP hulp

PHP hulp

22/11/2024 19:20:10
 
Emmanuel Delay

Emmanuel Delay

27/08/2008 17:51:00
Quote Anchor link
Ja, dat is mogelijk. Zoek eens naar "cronjob".

Het veld is echter totaal nutteloos, indien ze enkel dient om jou te zeggen of het minder dan 7 dagen oud is. In je query kan je die new inwerken zonder dat ze als veld hoeft te bestaan.

NEW is, dacht ik (hier kan ik me wel vergissen) , ook een beschermd woord in SQL, je zou dat beter anders noemen.
 
Frank -

Frank -

27/08/2008 18:05:00
Quote Anchor link
Zoals Emmanuel al zegt, het volkomen overbodig om de kolom New in de tabel op te nemen. Blijkbaar is dat een afgeleide van de datum en afgeleide zaken sla je nooit op.

Voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
  CASE
    WHEN DATE(DateCreated) < (CURRENT_DATE - INTERVAL 7 DAY) THEN 'oud'
    ELSE 'nieuw'
  END
    AS status
FROM
  tabelnaam;
 
Jeroen G

Jeroen G

28/08/2008 16:07:00
Quote Anchor link
Bedankt voor de tip, ik heb het zoals hieronder toegepast, en het werkt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT
    Count(orders.New)
FROM
    orders
WHERE
    date(orders.Created) > (CURRENT_DATE - INTERVAL 7 DAY)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.