al weer een vraag, gaat lekker vandaag....
Een bepaalde actie kan meerdere keren voorkomen, en om nu ook bij te houden hoe vaak een user zo'n actie doet, wil ik er overal een insert van maken, ipv de vorige actie te updaten.
Echter, bij het weergeven van de data van zo'n user wil ik de row uit m'n tabel, die het laatst is ingevoerd.
m'n tabel ziet er als volgt uit:
id (auto_increment)
user_id
veld1
veld2
veld3
tijd (timestamp)
Nu doe id
Nou zou ik dus verwachten dat als er van user_id=3, drie rows voorkomen, dat ie de row met de hoogste timestamp pakt. Maar wat doet mysql tot mijn verbasing? Hij pakt alle data uit de de eerste row (met de laagste timestamp) en zet vervolgens in het veld van de timestamp wel de hoogste timestamp neer.
dus stel die 3 rows zijn
id | user_id | veld1 | veld2 | tijd
-----------------------------------
1 | 3 | bla | dibla | 10
2 | 3 | een | twee | 12
3 | 3 | php | java | 14
dan krijg ik als voor user_id 3 terug:
1 | 3 | bla | dibla | 14
hoe kan dat?
Een bepaalde actie kan meerdere keren voorkomen, en om nu ook bij te houden hoe vaak een user zo'n actie doet, wil ik er overal een insert van maken, ipv de vorige actie te updaten.
Echter, bij het weergeven van de data van zo'n user wil ik de row uit m'n tabel, die het laatst is ingevoerd.
m'n tabel ziet er als volgt uit:
id (auto_increment)
user_id
veld1
veld2
veld3
tijd (timestamp)
Nu doe id
code:
1
2
| SELECT id, veld1, veld2 MAX(tijd) AS tijd GROUP BY user_id |
Nou zou ik dus verwachten dat als er van user_id=3, drie rows voorkomen, dat ie de row met de hoogste timestamp pakt. Maar wat doet mysql tot mijn verbasing? Hij pakt alle data uit de de eerste row (met de laagste timestamp) en zet vervolgens in het veld van de timestamp wel de hoogste timestamp neer.
dus stel die 3 rows zijn
id | user_id | veld1 | veld2 | tijd
-----------------------------------
1 | 3 | bla | dibla | 10
2 | 3 | een | twee | 12
3 | 3 | php | java | 14
dan krijg ik als voor user_id 3 terug:
1 | 3 | bla | dibla | 14
hoe kan dat?
[ Voor 64% gewijzigd door marty op 20-12-2002 23:21 ]