我有一个存储的ID表以逗号分隔字符串如下:使用像拔出从逗号的ID分隔字符串
field_id_13
------------
1234,5266,3678,4733,7372,5766,2578
,我用下面的Active Record构建(CI),拉出来的数据:
$this->db->select("*")
->from("channel_data d")
->join("channel_titles t","t.entry_id=d.entry_id")
->where("d.field_id_13 LIKE '%".$id."%'")
->where("t.status","open")
->get();
的问题是,有时我的搜索中,“266”的ID将被退回,因此 - 因为我的%周围的条款正在返回反对“5266结果匹配”。
这里有什么替代方法来确保它只返回正确的ID /行?
希望这是有道理的。
它应该是大于0这样$这个 - > DB->其中(“FIND_IN_SET(” $ id',d.field_id_13)> 0“,0); – PravinS
@PravinS。感谢您的建议。但是,如果找到FIND_IN_SET,则返回范围从1到N的值。否则将返回0。所以我们也可以检查'!='。 –
是的,但如果我们使用大于0,那么它将不会返回任何记录,如果在字符串 – PravinS