具有两个条件的数据表 Where 子句



我想在我的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(并返回最后一个语句的值。

相关内容

  • 没有找到相关文章

最新更新