• 查询
['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();
  • 生成器
$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');
all():将返回一个由行组成的数组,每一行是一个由名称和值构成的关联数组(译者注:省略键的数组称为索引数组)。
one():返回结果集的第一行。
column():返回结果集的第一列。
scalar():返回结果集的第一行第一列的标量值。
exists():返回一个表示该查询是否包结果集的值。
count():返回 COUNT 查询的结果
文档更新时间: 2020-07-23 22:09   作者:Yoby