Общий вид запроса all(): массив строк, каждая из которых это массив пар ключ-значение. one(): первая строка запроса. column(): первый столбец результата. scalar(): скалярное значение первого столбца первой строки результата. exists(): значение указывающее, что выборка содержит результат. count(): результат COUNT запроса. $rows = (new \yii\db\Query()) ->select(['id', 'email']) ->from('user') ->where(['last_name' => 'Smith']) ->limit(10) ->all(); // SELECT `id`, `email` FROM `user` $rows = (new \yii\db\Query()) ->select(['id', 'email']) ->from('user') ->all(); // SELECT * FROM `user` WHERE `username` LIKE `%test%` $row = (new \yii\db\Query()) ->from('user') ->where(['like', 'username', 'test']) ->one(); Показ самого SQL запроса: $command = (new \yii\db\Query()) ->select(['id', 'email']) ->from('user') ->where(['last_name' => 'Smith']) ->limit(10) ->createCommand(); // показать SQL запрос echo $command->sql; // показать привязываемые параметры print_r($command->params); SELECT $query->select(['id', 'email']); // эквивалентно: $query->select('id, email'); $query->select(['user.id AS user_id', 'email']); // эквивалентно: $query->select('user.id AS user_id, email'); Можно сразу вернуть массив с ключами "user_id" $query->select(['user_id' => 'user.id', 'email']); Можно использовать выражения и sql-функции: $query->select(["CONCAT(first_name, ' ', last_name) AS full_name", 'email']); Можно делать подзапросы (!): $subQuery = (new Query())->select('COUNT(*)')->from('user'); // SELECT `id`, (SELECT COUNT(*) FROM `user`) AS `count` FROM `post` $query = (new Query())->select(['id', 'count' => $subQuery])->from('post'); Для добавления новых полей можно использовать метод addSelect() $query->select(['id', 'username']) ->addSelect(['email']);
Yii Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor