J'ai 2 tables: user_values
et decrease_times
.Valeur de réduction Mysql d'une autre table
user_values
a 3 colonnes: username, property, value
et decrease_times
a 3 colonnes: property, decrease_value, decrease_time
. Tout cela est dynamique et change beaucoup.
J'ai une tâche cron qui est appelé toutes les heures, et ce que je veux faire est de réduire toutes les lignes de value
user_values
avec la quantité stockée dans decrease_value
si property
de user_values
est égale à property
de decrease_times
.
En outre, decrease_time
peut être 0 ou 1, 0 signifie qu'il devrait diminuer toutes les heures, et 1 signifie qu'il devrait diminuer toutes les 24 heures. J'ai déjà implémenté une if-clause qui détecte si c'est 6h du matin, et puis il devrait diminuer toutes les valeurs si elles sont 1 ou 0.
Quelle requête dois-je faire pour faire ceci? En outre, ceci est fait en PHP.
Edit: Ce que je l'ai fait jusqu'à présent est la suivante: UPDATE user_values SET value = value - (SELECT decrease_value FROM decrease_times WHERE property=/* property from UPDATE clase should be here */) WHERE property=(SELECT property FROM decrease_times WHERE decrease_time=0)
Merci, je ne savais pas à propos de ces clés. Cela a fonctionné – Pacha