我使用CodeIgniter根据来自1列的字符串长度的数据是否大于1来从MySQL表中选择数据。
代码:
$this->db->order_by('time_stamp', 'desc');
$this->db->where('strlen(user_categrory)>1');//I know this code does not work but that's what I wanted to achieve
$data['record']=$this->db->select('username, user_category, email, source, status, test_group, time_stamp, referrer_email')->get('user');
关于如何完成这项工作的任何建议?非常感谢。
答案 0 :(得分:0)
将false作为where()的第三个参数传递,CodeIgnite不会从第一个参数https://ellislab.com/codeigniter/user-guide/database/active_record.html#select中转义字符串。然后,您可以使用MySQL的LENGTH()函数:
$this->db->where('LENGTH(user_categrory)>1', null, false);
此外,您可能需要使用CHAR_LENGTH()而不是LENGTH(),因为LENGTH()以字节为单位,而CHAR_LENGTH()是实际字符。
答案 1 :(得分:0)
strlen函数在mysql中不起作用请使用LENGTH函数作为字符串长度,请按照此代码试一试。
$this->db->select('username, user_category, email, source, status, test_group, time_stamp, referrer_email');
$this->db->order_by('time_stamp', 'desc');
$this->db->where('length(user_categrory)>1');
$data['record']=$this->db->get('user');