用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1748|回复: 6
收起左侧

[数据库] 怎样反条件查询数据库

[复制链接]
发表于 2017-9-13 15:34:28 | 显示全部楼层 |阅读模式
如下表(部分):
idzhuangtai uid num
1正在进行 25
2 正在进行3 5
3 正在进行65
4 正在进行 2 6

我现在是要把 uid为3 num为5的 zhuangtai 修改为成功,然后把剩下的 num 为5的别的 zhuangtai 都修改为失败

我的代码是:
PHP复制代码
$ci->db->set('zhuangtai',"成功")->where('uid',2)->where('num',5)->update('表名');
复制代码


现在得到的表是这样的:
id
zhuangtai
uid
num
1
成功
2
5
2
正在进行
3
5
3
正在进行
6
5
4
正在进行
2
6

我想要的是
PHP复制代码
$ci->db->set('zhuangtai',"失败")->where('num',5)->where('uid'不等于2)->update('表名')
复制代码
   
则得到的结果是如下表,我该如何去做:

id
zhuangtai
uid
num
1
成功
2
5
2
失败
3
5
3
失败
6
5
4
正在进行
2
6

发表于 2017-9-13 15:43:38 | 显示全部楼层
使用,
$this->db->where_not_in();

PHP复制代码
 
$names = array('Frank', 'Todd', 'James');
$this->db->where_not_in('username', $names);
// Produces: WHERE username NOT IN ('Frank', 'Todd', 'James')
复制代码



或者,
PHP复制代码
$ci->db->set('zhuangtai',"失败")->where('num',5)->where('uid !=',2)->update('表名');
复制代码



参见:
http://codeigniter.org.cn/user_g ... ry_builder.html#id3

PS,有空多看看,在线手册,写的很详细。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-9-13 15:37:37 | 显示全部楼层
快来帮帮我呀~
发表于 2017-9-13 15:46:38 | 显示全部楼层
什么情况,发的帖子,怎么跑你前面去了。

在这里:
http://codeigniter.org.cn/forums ... mp;page=1#pid104208
 楼主| 发表于 2017-9-13 15:48:47 | 显示全部楼层
wangyouworld 发表于 2017-9-13 15:43
使用,
$this->db->where_not_in();

还能这样操作~真是学到了,十分感谢

本版积分规则