Два запроса mysql в одном cron, один должен выполняться не оба? - PullRequest
1 голос
/ 31 декабря 2011

У меня есть два запроса, например:

$q = $dbc -> prepare("UPDATE accounts SET motivation = motivation+100 WHERE motivation <= maxMotivation-100");
$q -> execute();

$q = $dbc -> prepare("UPDATE accounts SET motivation = maxMotivation WHERE motivation > maxMotivation-100");
$q -> execute();

Это в основном гарантирует, что число не может превышать максимально допустимое число.Но проблема в том, что это входит в cronjob, так как я могу сделать это в одном утверждении?Если первое не помогло, сделайте второе или, если первое успешно, пропустите второе.Есть ли способ с mysql, если заявления?

1 Ответ

1 голос
/ 31 декабря 2011

Вам не нужно делать это в двух запросах. Похоже, вы добавляете 100 к каждому значению мотивации в таблице; если это ставит вас выше maxMotivation, тогда используйте это значение. Это можно сделать за один раз без предложения WHERE.

$q = $dbc -> prepare("UPDATE accounts SET motivation = LEAST(motivation+100, maxMotivation)");
$q -> execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...