【发布时间】:2013-09-12 18:53:50
【问题描述】:
我正在使用活动记录运行 CodeIgniter。下面是我的表结构:
id (int) user (int) is_complete (tinyint)
------------------------------------------------
1 24 1
2 24 1
3 24 NULL
4 24 0
5 24 0
案例一
$this->db->where('user', 24);
查询:
SELECT * FROM `table` WHERE `user` = 24
有效并返回:
id user is_complete
--------------------------
1 24 1
2 24 1
3 24 NULL
4 24 0
5 24 0
案例 2
$this->db->where('user', 24);
$this->db->where('is_complete', 1);
查询:
SELECT * FROM `table` WHERE `user` = 24 AND `is_complete` = 1
有效并返回:
id user is_complete
--------------------------
1 24 1
2 24 1
案例 3
$this->db->where('user', 24);
$this->db->where('is_complete !=', 1);
查询:
SELECT * FROM `table` WHERE `user` = 24 AND `is_complete` != 1
不起作用并且正在返回:
id user is_complete
--------------------------
4 24 0
5 24 0
案例 4
$this->db->where('user', 24);
$this->db->where('is_complete <>', 1);
查询:
SELECT * FROM `table` WHERE `user` = 24 AND `is_complete` <> 1
不起作用并且正在返回:
id user is_complete
--------------------------
4 24 0
5 24 0
需要结果
它应该返回:
id user is_complete
--------------------------
3 24 NULL
4 24 0
5 24 0
我是在使用where() 方法做错了什么,还是有更好的方法来完成这个?
【问题讨论】:
-
如果您将其与
0或NULL进行比较,您会得到想要的输出吗? -
0不起作用,NULL起作用 -
更正:
0有效,NULL有效 -
能否调试查询?我的意思是,输出那些命令创建的 sql 查询?
-
使用
echo $this->db->last_query();调试查询,将查询复制并粘贴到phpMyAdmin 中并检查它是否有效。
标签: php mysql codeigniter-2 codeigniter