是否可以在活动查询中添加子字符串?
我有这个例子,当我在纯sql中写出它时。但是,当我在CI中的活动查询中写入时,结果不会显示。我想知道是否有人可以帮助验证这是否正确。
$this->db->distinct();
$this->db->select('user_table.id','user_table.first_name','user_table.last_name','user_table.email','user_table.created_on');
$this->db->from($this->user_table);
$this->db->join($this->account_items_table,'user_accounts.id = account_items.user_id','LEFT');
$this->db->where('SUBSTRING(account_items.key,1,2)',$input);
答案 0 :(得分:0)
可能CI正在你的表达式中添加反引号,将第三个参数传递为where()
$this->db->where('SUBSTRING(account_items.key,1,2)',$input,false);
答案 1 :(得分:0)
这对我来说很好用:
$this->db->where('SUBSTRING(title, 1, 1)=','H');
$query = $this->db->get('news');
print $this->db->last_query();
我能看到的唯一区别是我已经包含了=运算符。
正如您所看到的那样,它会返回名为" Hello"的文章: https://mi-linux.wlv.ac.uk/~in9352/codeigniter3/
并且SQL语句是:SELECT * FROM news
WHERE SUBSTRING(title,1,1)=' H'
根据建议您应该使用
print $this->db->last_query();
要查看你的SQL是什么......在我的情况下允许发现missing =运算符...调试总是有用的!