php 获取列中的值并按id和时间随机选择1递增

qxsslcnc  于 2023-03-28  发布在  PHP
关注(0)|答案(1)|浏览(112)

我想在一列中得到3个随机值,并将它们递增1。

  • stats列中的每个选定值都不应在过去7天内输入到数据库中
  • 然后,stats列中的每个值都应递增1。

要选择我想要使用的值,请执行以下操作:

//  $conn = new PDO...
{

    $date = date_create('now', timezone_open('America/Los_Angeles'));
    $date = date_format($date, 'Y-m-d H:i:s');

    $rand = $conn->prepare("SELECT `id`, `stats`,timestamp FROM `stats_db` WHERE TIMESTAMPDIFF(day,`timestamp`,'".$date."' ) < 7  ORDER BY RAND() LIMIT 3");
    $rand->execute(); 
    
}

我现在需要增加这些值并将它们更新到行中。我该怎么做呢?

mrfwxfqh

mrfwxfqh1#

您可以在UPDATE查询中使用ORDER BYLIMIT,因此不需要先使用SELECT
也不需要将$date替换到查询中,您可以在MySQL中获取日期。

$stmt = $conn->query('
    UPDATE stats_db 
    SET stats = stats + 1
    WHERE `timestamp` > DATE_SUB(NOW(), INTERVAL 7 DAY)
    ORDER BY RAND() 
    LIMIT 3');

相关问题