dilikpulatov
@dilikpulatov
веб-программист

Почему Yii2 неправильно обрабатывает MySQL запросы?

Здравствуйте!
Хотел получить количество пользователи по статус
итак есть таблица юзер и поля статус равен 1 или 0
если в PhpMyAdmin напишу запрос то все работает нормально....
SELECT SUM(IF(status = "1",1,0)) AS active,SUM(IF(status = "0",1,0)) AS inactive FROM `user`

а если в Yii2 напишу то выводят ошибку..
сам запрос
(new \yii\db\Query())->from('user')->select('SUM(IF(status = "1",1,0)) AS active, SUM(IF(status = "0",1,0)) AS inactive')->all()

а ошибка
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `status_active` FROM `user`' at line 1
The SQL being executed was: SELECT SUM(IF(status = "1", `1`, `0))` AS `status_active` FROM `user`

по моему это из-за того что в селект он не правильно вставляет = "`"
как можно исправить?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 2
@karminski
Senior React.JS Developer
(new Query())->select([
    'SUM(IF(status = "1",1,0))' => 'active',
    'SUM(IF(status = "0",1,0))' => 'inactive'
]);
Ответ написан
Комментировать
@sidni
Php Developer
Мне кажется эта ошибка вообще к той строчке кода не относится
и вообще я привык писать
(new Query())
            ->select(['SUM(IF(status = "1",1,0)) AS active','SUM(IF(status = "0",1,0)) AS inactive']);

UPD да у Вас ошибка надо в массиве
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы