根据列的字符串长度从MySQL中选择 - CodeIgniter

时间:2014-08-30 03:46:05

标签: php mysql codeigniter

我使用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');

关于如何完成这项工作的任何建议?非常感谢。

2 个答案:

答案 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');