0
https://stackoverflow.com/a/12772507/1507546如何使用MySQL的变量理论
我想通过理论来执行这个查询,但我发现下面的错误
[主义\ DBAL \驱动程序\ PDOException] SQLSTATE [42000 ]:语法错误或访问冲突:1064您的SQL语法错误;检查对应于您MariaDB的服务器版本正确的语法附近 使用“@counter:= 0”手动位于第1行
这里是我的代码
$sql = <<<S
SET @counter = 0;
Select sub.orderid,sub.value,(@counter := @counter +1) as counter
FROM
(
select orderid,
round(sum(unitprice * quantity),2) as value
from order_details
group by orderid
) sub
order by 2 desc
limit 10
S;
stmt = $this->_em->getConnection()->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(AbstractQuery::HYDRATE_ARRAY);
尝试在其他语句中添加'SET'。大多数SQL API不允许在没有额外配置的情况下在单个查询中使用多个语句。 – aynber
对不起,谢谢!你可以发布你的答案,我会接受它 – smarber