Код: Выделить всё
$connection = \Yii::$app->getDb();
$command = $connection->createCommand('
set @ref_id=0; set @num=1;
select
c.id,
(@num := if(@ref_id = ref_id, @num + 1, 1)) AS row_number,
(@ref_id := ref_id) AS dummy
from comment c
where c.user_id = :user_id
order by c.ref_id');
$command->bindValue(':user_id', $user_id);
$result = $command->queryAll();
Валится:
Database Exception – yii\db\Exception
SQLSTATE[HY000]: General error
The SQL being executed was:
set @ref_id=0; set @num=1;
select
c.id,
(@num := if(@ref_id = ref_id, @num + 1, 1)) AS row_number,
(@ref_id := ref_id) AS dummy
from comment c
where c.user_id = 1
order by c.ref_id
Error Info: Array
(
[0] => HY000
)
↵
Caused by: PDOException
SQLSTATE[HY000]: General error
Насколько я понял, проблема в set @ref_id=0; set @num=1;
Без этой строчки запрос проходит. Как правильно устанавливать переменные?