如何使用codeigniter在同一字段中搜索2个值?

时间:2019-03-03 22:09:39

标签: php mysql codeigniter codeigniter-3

我有一个包含关键字ID [“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,“ 6”]的数据库字段,并且我想在同一字段中搜索多个这些ID

以下是我想要实现的目标:

$tags[] = "\"1\"";

$tags[] = "\"2\"";

$query = $this->db->like(array('ids_keywords' => $tags[0], 'ids_keywords' => $tags[1]));

这里的问题是,由于搜索字段相同,因此codeigniter仅执行最后一个请求,而不执行两个请求。

什么是最好的解决方案?

2 个答案:

答案 0 :(得分:0)

尝试以下

$arrTags = [1,2];
$this->db->group_start()
foreach($arrTags AS $strTag)
{
    $this->db->like(ids_keywords, '"'.$strTag.'"');

}
$this->db->group_end();

答案 1 :(得分:0)

您可以编写自己的子句:

$where = "ids_keywords='1' AND ids_keywords='2' OR ids_keywords='3'";

$this->db->where($where);

为了安全查询,请使用问号(?)

$sql = "SELECT * FROM some_table WHERE ids_keywords = ? AND ids_keywords = ? AND ids_keywords = ?";
   $this->db->query($sql, array(1, 2, 3));

在上面的示例中,问号(?)将替换为query()函数第二个参数中的数组。以这种方式构建查询的主要优点是,将自动转义产生安全查询的值。 CodeIgniter引擎自动为您完成。