【问题标题】:How to use OR_Where with AND condition in CodeIgniter?如何在 CodeIgniter 中使用 OR_Where 和 AND 条件?
【发布时间】:2019-01-14 11:25:26
【问题描述】:

我正在使用 CodeIgniter。我需要了解 whereor_where 条件在 codeigniter 查询生成器中的工作原理。

我需要像 where a="" AND b="" AND c="" OR d="" AND e="" 这样的输出

所以我尝试了一个关联数组。

$where= array('a'=>$firstname,'b'=>$lastname,'c'=>1);
$or_where= array('d' =>$customer_mobile,'e'=>1);

但是我得到了输出 where a="" AND b="" AND c="" OR d="" OR e=""

你愿意帮忙吗?

是的,我的问题不同。我询问了or_where 的情况。请检查我的预期输出并获得输出。而且重复的问题不同。

【问题讨论】:

  • @iainn,那么答案是什么?
  • 我想你没有注意到 or_where 条件。请再次检查。我有多种情况
  • 使用普通的query()。我不认为,这可以实现。即使使用 Laravel 我也遇到了同样的问题
  • @AbdullaNilam,感谢您的回复,正常查询意味着我必须使用 $or_where=('d'="" AND 'e'="");像这样?

标签: php mysql codeigniter codeigniter-3 codeigniter-query-builder


【解决方案1】:

希望对您有所帮助:

像这样使用query grouping:根据你的需要改变你的table namevariables

$firstname = 'a';
$lastname = 'b';
$customer_mobile = 'd';
$this->db->select('*')->from('users')
        ->group_start()
                ->where('a', $firstname)
                ->where('b', $lastname)
                ->where('c', '1')
                ->or_group_start()
                        ->where('d', $customer_mobile)
                        ->where('e', '1')
                ->group_end()
        ->group_end()
->get();
echo $this->db->last_query();

输出将是这样的:

SELECT * FROM `users` 
WHERE ( `a` = 'a' AND `b` = 'b' AND `c` = '1'
OR ( `d` = 'd' AND `e` = '1' ) )

更多:https://www.codeigniter.com/user_guide/database/query_builder.html#query-grouping

【讨论】:

  • 感谢@pradeep 的回复,给我时间来实现这个
  • 如果我必须使用 join ->join('membership_details', 'members.member_id = members_details.member_id', 'Left');那么我必须在 group_start 之前添加?
  • 快乐是我的,快乐编码
猜你喜欢
  • 1970-01-01
  • 2012-03-31
  • 2023-03-08
  • 2013-05-06
  • 2021-10-20
  • 2023-03-05
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多