yii2.0 增删改查sql语句
User::find()->all(); 此方法返回所有数据;
User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子);User::find()->where(['name' => '小伙儿'])->one(); 此方法返回 ['name' => '小伙儿'] 的一条数据;where(['>', '字段名', '值'])查询比条件的
User::find()->where(['name' => '小伙儿'])->all(); 此方法返回 ['name' => '小伙儿'] 的所有数据;
User::find()->orderBy('id DESC')->all(); 此方法是排序查询;
if (!empty($search)) {$query->andWhere(['like', 'title', $search]);
}
生成的语句就是10) AND (title LIKE ‘%yii%’)
操作符格式:
[操作符作符, 操作数1, 操作数2, …]
第一个参数是操作符
操作符包括and、or、 like、in、 between等
第二个第三个都是操作数
第一种最简单的就是上面提到的例子andWhere(['like', 'title','yii']);
... WHERE (`title` LIKE '%yii%')$this->find()->where(['in', 'product_id', $ids])->count(); in用法第二种
addWhere(['and', 'id=1', 'parent_id=1']);
... WHERE id=1 AND parent_id=1第三种
addWhere(['and', 'type=1', ['or', 'id=1', 'parent_id=1']]);
... WHERE type=1 AND (id=1 OR parent_id=1);第四种
->andWhere(['or like','name',['油条','spicy']]);WHERE `name` LIKE '%油条%' OR `name` LIKE '%spicy%';第五种addWhere(['or',['like','name','煎饼'],['like','title','spicy']]);//操作符格式的嵌套
... WHERE (`status`=1) AND ((`name` LIKE '%煎饼%') OR (`title` LIKE '%spicy%'))不等于:
->andWhere(['<>','status', $date])小于 :top_time小于 $time
$andWhere = ['<','top_time',$time];优先按照指定字段字符串排序:
$orderSql = ["FIELD(city_id,$city_id) desc,level_id ASC" => true];->orderBy(["FIELD(status, 101,106) desc" => true])['between', 'id', 1, 10] //id BETWEEN 1 AND 10
优先按照指定字段字符串排序

查询操作:
User::find()->where(['name' => 'username'])->one(); 此方法返回 ['name' => 'username'] 的一条数据;
User::find()->where(['name' => 'username'])->all(); 此方法返回 ['name' => 'username'] 的所有数据;User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); 统计符合条件的总条数;
添加:
使用createCommand()进行新增数据:
Yii::$app->db->createCommand()->insert('user', [ 'name' => 'test', 'age' => 30,
])->execute();
使用model::save()操作进行新增数据:
$user= new User;
$user->username =$username;
$user->password =$password;
$user->save()
批量插入数据:
Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [ ['test01', 30], ['test02', 20], ['test03', 25],
])->execute();
修改
使用model::save()进行修改:
$user = User::find()->where(['name'=>'test'])->one(); //获取name等于test的模型
$user->age = 40; //修改age属性值
$user->save(); //保存
$result = User::model()->updateAll(['age'=>40],['name'=>'test']);
直接修改:修改用户test的年龄为40:
$result = User::updateAll(['age'=>40],['name'=>'test']);
使用createCommand()修改:
修改多条数据的某一字段 :
$sum = Yii::$app->db->createCommand()
->update('me_user_amount_trade', ['identification' => 2], ['in_userid'=>$userid,'status'=>3,'identification'=>1])
->execute();
me_user_amount_trade :表名(table需要表前缀)
[‘identification’ => 2]:需要修改的字段和字段值
[‘in_userid’=>$userid,‘status’=>3,‘identification’=>1]:修改数据的条件(也就是得到你需要修改的数据)。
execute():执行(必要)
删除
使用model::delete()进行删除:
$user = User::find()->where(['name'=>'test'])->one();
$user->delete();
直接删除:删除年龄为30的所有用户:
$result = User::deleteAll(['age'=>'30']);
使用createCommand()删除:
Yii::$app->db->createCommand()->delete('user', 'age = 30')->execute();
更详细的增删改差
分组,求和 ,以city_id为id
$today_active = CityDataStatistic:: getObjectByWhere($active_where,["SUM(total) AS total","SUM(false_total) AS false_total","type", "city_id"])->groupBy(['city_id'])->indexBy('city_id')->asArray()->all();
根绝两个字段的和进行排序
$list = User::getByAndWhere($where,$andWhere,'id,login_name,nick_name,small_active,vir_small_active,user_face,(small_active+vir_small_active) as num','num DESC','',$size);

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
