Tengo una base de datos MySQL. Quiero reducir ciertos datos usando Cronjob en ciertos momentos de la semana.
(Nombre de la tabla: Cuentas)
username | hunger | hp | | Dworczyk | 100 | 100 Mateusz | 100 | 95Digamos que se reducirá una cantidad aleatoria de los datos de hambre de todos en la tabla anterior. En otras palabras, se reducirán los datos de hambre de todas las personas de arriba.
const CronJob = require('cron').CronJob; const { con, pool } = require("./container/mysql.js") let random_number = Math.floor(Math.random() * 100) + 1; let job = new CronJob('0 0 * * *', function() { pool.query(`SELECT * FROM Accounts WHERE username = 'Dworczyk'`, async (err, rows) => { if (err) throw err; pool.query(`UPDATE Accounts SET hunger = ${rows[0].hunger} - ${random_number}`); }); }, null, true, 'America/Los_Angeles'); job.start(); Lo que hice arriba es una simple resta de una sola persona. No debería estar ligado solo a "Dworczyk". ¿Cómo puedo realizar transacciones en todos sin usar la tecla WHERE ?
Resta de la columna en sí en lugar de una variable.
Además, utilice consultas parametrizadas en lugar de sustituir variables en el SQL.
pool.query('UPDATE Accounts SET hunger = hunger - ?', [random_number], function(err, response) { if (err) throw err; });