引数の値の最小値を返す定義済みの MySQL 関数はありますか (MINIMUM(1,16) -> 1)?
具体的に言うと、mysql テーブルの 1 つにサイト滞在時間の列があります。
すべての訪問者は、30 秒ごとにサーバーをポーリングして更新を行います。
UPDATE `mytable` SET `lastUpdate` = NOW() WHERE `id` = ?;
しかし、次のように timeOnSite 列も更新したいと思います。
UPDATE `mytable` SET `timeOnSite` = (
`timeOnSite` + MINIMUM(
TIMESTAMPDIFF(SECOND, lastUpdate, NOW()), 30
)
),
`lastUpdate` = NOW() WHERE `id` = ?;
しかし、問題はそのような MINIMUM 関数がないことであり、MySQL のマニュアルで見つけることができませんでした。