gpt4 book ai didi

php - 在 codeigniter 中使用带有 Like 的 where 子句

转载 作者:行者123 更新时间:2023-11-29 01:05:32 25 4
gpt4 key购买 nike

我正在做一个项目。我正在我的系统中实现搜索功能。

我将不得不根据当前使用登录显示两个表中的搜索记录。我尝试了以下代码:

    function searchActivity($limit,$offset,$keyword1,$keyword2,$recruiter_id)
{
$q=$this->db->select('*')->from('tbl_activity')->limit($limit,$offset);
$this->db->join('tbl_job', 'tbl_job.job_id = tbl_activity.job_id_fk', 'left outer');
$this->db->order_by("activity_id", "ASC");
$this->db->like('job_title',$keyword1,'both');
$this->db->or_like('job_title',$keyword2,'both');
$this->db->or_like('activity_subject',$keyword1,'both');
$this->db->or_like('activity_subject',$keyword2,'both');
$this->db->or_like('activity_details',$keyword1,'both');
$this->db->or_like('activity_details',$keyword2,'both');
$this->db->where('tbl_activity.recruiter_id_fk',$recruiter_id);
$ret['rows']=$q->get()->result();
return $ret;
}

我想根据当前存储在 $recruiter 中的当前用户 ID 显示搜索结果。

提前致谢。

最佳答案

您必须在 () 中对所有 like 条件进行分组,然后为所有 like 条件添加 AND,如下所示

function searchActivity($limit,$offset,$keyword1,$keyword2,$recruiter_id)
{

$query="SELECT * FROM tbl_activity
left outer tbl_job ON (tbl_job.job_id = tbl_activity.job_id_fk)
WHERE tbl_activity.recruiter_id_fk=".$recruiter_id." AND
(job_title LIKE '%".$keyword1."%' OR job_title LIKE '%".$keyword2."%' OR
activity_subject LIKE '%".$keyword1."%' OR activity_subject LIKE '%".$keyword2."%' OR
activity_details LIKE '%".$keyword1."%' OR activity_detailsLIKE '%".$keyword2."%'
)
ORDER BY activity_id ASC LIMIT $limit,$offset";
$ret['rows']= $this->db->query($query)->result();

return $ret;
}

您的WHERE 条件正在影响recruiter_id_fk 但您的like 条件的级别类似于SELECT * FROM table WHERE id =1 OR keyword LIKE '%test%' OR keyword1 LIKE '%test%' 如果您希望结果与关键字匹配但在相同的 id 那么你必须将 OR 条件与父 AND 操作分组,如

SELECT * FROM table WHERE id=1 AND(关键字 LIKE '%test%' OR keyword1 LIKE '%test%')

希望这是有道理的

关于php - 在 codeigniter 中使用带有 Like 的 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com