php - CodeIgniter 的喜欢和地点

标签 php mysql codeigniter

我有一个过滤器状态和搜索,我正在尝试使用此逻辑进行查询

如果我有一个同时包含过滤器状态和搜索的输入

select * from table_name where status = 'Active' AND name like %search% or address like %search%

我想使用状态搜索过滤的记录,反之亦然,我想状态过滤搜索的记录

我正在尝试使用此查询,但它似乎不是正确的查询

$this->db->select('*')->from('tbl_users');
$this->db->like('name', $string, "both");
$this->db->or_like('address', $string, "both");
$this->db->where('status', $status);
$this->db->get();

最佳答案

您需要指定一些组:

$this->db->select('*')->from('tbl_users')
    ->group_start()
        ->where('status', $status)
        ->or_group_start()
            ->like('name', $string, 'both')
            ->like('address', $string, 'both')
        ->group_end()
    ->group_end()
->get();

参见https://codeigniter.com/user_guide/database/query_builder.html#query-grouping

关于php - CodeIgniter 的喜欢和地点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723522/

相关文章:

php - 不断收到警告 : mysql_fetch_object(): supplied argument is not a valid MySQL result resource

mysql - SQL IF EXIST 问题

mysql - 当我们有复合索引时是否需要正常的 MySql 索引

mysql - 如何在父表中实现 SQL 外键

php - Codeigniter:使用 session 调用另一个表

php - 如何从 PDO 的 fetchAll 结果中获取列名?

javascript - ajax 创建的输入元素的值在提交时变为 null

php - 响应文件管理器上传错误

mysql - 如何在 Codeigniter 中查找活跃用户和过期用户并比较日期?

php - 如何编辑 htaccess 文件