SELECT 从具有多个值的字段查询 WHERE_IN 子句

SELECT query from field having multiple value with WHERE_IN clause

下面是一个VIEWsearch_resultskills 列包含 GROUP_CONCAT 中的值以及其他 table.

中的值

现在我正尝试使用 where_in 子句从这个 VIEW 中 select 值,如下所示:

$s_id = array('2D Design','3D Design');

$this->db->select('id');
$this->db->from('search_result');
$this->db->where_in('skills',$s_id);  

执行此查询时,结果只有 3 行,即仅包含 2D 设计2D 设计 的技能。

我想显示所有包含任何该技能的行作为输出。所以请帮我做这个。

我认为你需要在这里使用 FIND_IN_SET:

$s_id = array('2D Design','3D Design');

$this->db->select('id');
$this->db->from('search_result');
$this->db->where("FIND_IN_SET('$s_id[0]', skills) != ", 0);

for($x=1; $x < count($s_id); $x++) {
    $this->db->or_where("FIND_IN_SET('$s_id[$x]', skills) != ", 0);
}

这里的逻辑是您实际上想对数组中的 each 技能使用 FIND_IN_SET 以查看它是否包含在您的 CSV 技能列表中table。您不能通过一次调用来完成此操作,并且每个检查都应该在 WHERE 子句中一起进行或运算。