Создание MySQL переменных

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
cvl
Сообщения: 25
Зарегистрирован: 2015.03.02, 08:42
Контактная информация:

Создание MySQL переменных

Сообщение cvl »

Пытаюсь выполнить такую команду.

Код: Выделить всё

$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;
Без этой строчки запрос проходит. Как правильно устанавливать переменные?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Создание MySQL переменных

Сообщение zelenin »

насколько помню, каждую команду надо выполнять отдельно
cvl
Сообщения: 25
Зарегистрирован: 2015.03.02, 08:42
Контактная информация:

Re: Создание MySQL переменных

Сообщение cvl »

zelenin
Да, так и есть, нужно по одной команде выполнять. Все получилось. Спасибо!
Ответить