php UPDATE和SELECT在同一查询中


php UPDATE and SELECT in same query

我试图在php中进行双重查询,但由于某些原因无法运行。

Basicall我想更新表中的一行,其中id为MAX,fb_id等于fbId参数。

这是我的代码:

  public function updatePages($fbId, $nr_page = NULL) {
        $db = Database::getInstance();
        $query = "UPDATE visits SET pages =".$nr_page." WHERE id = (SELECT maxvalue FROM (SELECT MAX(id) AS maxvalue FROM visits WHERE fb_id =".$fbId."))";
        if($db->query($query))
            return true;
        return false;
    }

您可以尝试这种方式来分配id的SELECT最大值,并分配给WHERE子句的id

$query = "UPDATE visits SET pages =".$nr_page." WHERE id = (SELECT MAX(id) AS maxvalue FROM visits WHERE fb_id =".$fbId." LIMIT 1)";

您需要两个级别吗?试试这个:

$query = "UPDATE visits SET pages =".$nr_page." WHERE id = (SELECT id FROM visits WHERE fb_id =".$fbId." ORDER BY id DESC LIMIT 1)";

我终于成功了,下面是解决方案:

  $query = "UPDATE visits SET pages =".$nr_page." WHERE fb_id =".$fbId." ORDER BY id DESC LIMIT 1";