以逗号分隔值检查条件

时间:2016-03-03 09:57:23

标签: php mysql codeigniter

我正在使用CodeIgniter。在我的表中,其中一个字段包含值1,2或1或2.现在我想检查模型中的条件。列名称是上面提到的值的句点。

模型

  if($post_period == 1)
        {
            $this->db->where('period',1);             
        }
        else if($post_period == 2)  
            {
                $this->db->where('period',2);      
            }

1 个答案:

答案 0 :(得分:3)

使用Mysql函数FIND_IN_SET(str,strlist)。

如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值。

字符串列表是由以“,”个字符分隔的子字符串组成的字符串。 如果第一个参数是常量字符串而第二个参数是SET类型的列,则FIND_IN_SET()函数被优化为使用位算术。

如果str不在strlist中,或者strlist是空字符串,则返回0。如果任一参数为NULL,则返回NULL。

如果第一个参数包含逗号(“,”)字符,则此函数无法正常工作。

 $this->db->where("FIND_IN_SET( '$post_period' , period) ");