我试图在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";