141天前2019-05-30 16:49:10 |    抢沙发  240 
今天再Codelgniter中使用find_in_set函数的时候在执行查询语句的时候自动给我加上了IS NULL,加上以后是无法获得查询结果的。查找一番后找到了解决办法,于是分享出来供大家参考。

CodeIgniter

表现:

在ci中使用查询构造器进行where条件查询时使用find_in_set函数的时候在条件中自动添加了IS NULL导致结果返回为空。

错误写法:

$this->db->where("find_in_set('1',type)");
上面写法会给你加上IS NULL

正确写法:

$this->db->where("find_in_set('1',type) !=",0);
这样执行的时候就不会添加IS NULL了。查询结果返回正常。

到此,CodeIgniter查询条件使用find_in_set函数自动添加IS NULL的问题就已经完美解决了。

这里再顺便说下,使用函数find_in_set是不会走索引的,会导致扫描全表的。如果数据量不多的话用find_in_set还是非常便利的。如果是数据量非常大的话还是通过自己建表去实现把。

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享