ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 数据库 \['between', 'id', 1, 10\] 将会生成 id BETWEEN 1 AND 10~~~ 查询多条 $posts = Yii::$app->db->createCommand('SELECT \* FROM post') ->queryAll(); 查询一条 $post = Yii::$app->db->createCommand('SELECT \* FROM post WHERE id=1')->queryOne(); 返回一列 $titles = Yii::$app->db->createCommand('SELECT title FROM post') ->queryColumn(); 返回标量 $count = Yii::$app->db->createCommand('SELECT COUNT(\*) FROM post') ->queryScalar(); 绑定参数 $post = Yii::$app->db->createCommand('SELECT \* FROM post WHERE id=:id AND status=:status') ->bindValue(':id', $\_GET\['id'\]) ->bindValue(':status', 1) ->queryOne(); 非查询 Yii::$app->db->createCommand('UPDATE post SET status=1 WHERE id=1') ->execute(); Yii::$app->db->createCommand()->insert('user', \[ 'name' => 'Sam', 'age' => 30, \])->execute(); Yii::$app->db->createCommand()->update('user', \['status' => 1\], 'age > 30')->execute(); Yii::$app->db->createCommand()->delete('user', 'status = 0')->execute(); ``` <pre class="calibre14">``` 生成器 ``` ``` $query->select(\['id', 'email'\]); $subQuery = (new Query())->select('COUNT(\*)')->from('user'); $query->select('user\_id')->distinct();//去重复 $query->from(\['u' => 'public.user', 'p' => 'public.post'\]);多表 $query->where('status=:status', \[':status' => $status\]); $query->where('status=1'); $query->where(\[ 'status' => 10, 'type' => null, 'id' => \[4, 8, 15\], \]); \['and', 'id=1', 'id=2'\] \['or', 'id=1', 'id=2'\] \['between', 'id', 1, 10\] 将会生成 id BETWEEN 1 AND 10 \['in', 'id', \[1, 2, 3\]\] 将生成 id IN (1, 2, 3) \['like', 'name', 'tester'\] 会生成 name LIKE '%tester%' \['>', 'age', 10\] 将会生成 age>10 $query->orderBy('id ASC, name DESC'); $query->groupBy('id, status'); $query->limit(10)->offset(20); // ... LEFT JOIN `post` ON `post`.`user_id` = `user`.`id` $query->join('LEFT JOIN', 'post', 'post.user\_id = [user.id](http://user.id)'); all():将返回一个由行组成的数组,每一行是一个由名称和值构成的关联数组(译者注:省略键的数组称为索引数组)。 one():返回结果集的第一行。 column():返回结果集的第一列。 scalar():返回结果集的第一行第一列的标量值。 exists():返回一个表示该查询是否包结果集的值。 count():返回 COUNT 查询的结果 ``` <pre class="calibre16">``` ``` ```