我想在我的MySQL数据表中选择p_code=10和p_code=24的记录,仅适用于用户= 4。我使用了以下代码片段。
$usr = $this->session->userdata('id_user');
if($usr == 4)
{
$this->datatables->where('tbl_officer.p_code', 10);
$this->datatables->where('tbl_officer.p_code', 24);
} else {
$this->datatables->where('tbl_officer.usr', $usr);
}
但是代码会输出一个空的结果。如果我删除该行,$this->datatables->where('tbl_officer.p_code', 24(;结果仅显示 p_code=10 的军官。
如何在代码中添加这两行带有 where 子句?谁能帮忙?
使用or_where
,这样您就可以同时获得两者或其中之一:
$this->datatables->where('tbl_officer.p_code', 10)->or_where('tbl_officer.p_code', 24);
您也可以使用where_in
:
$this->datatables->where_in('tbl_officer.p_code', [10, 24]);
您需要使用or_where
来连接这两个语句,如下所示:
$this->datatables->where('tbl_officer.p_code', 10)->or_where('tbl_officer.p_code', 24);
没有它,您将只运行两个单独的查询(一个用于p_code == 10
,另一个用于p_code == 24
(并返回最后一个语句的值。