如何在CodeIgniter中的db活动记录中使like()方法不区分大小写?

时间:2012-11-28 11:36:33

标签: php codeigniter

e.g。如果我有这些变量:

$variable1 = "ABCDEFG";
$variable2 = "AbCDefG";

和db这样的东西:

ABCDEFG
IJKLMNO
PQRSTUV
...

如果我尝试像这样使用like()方法:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('username', $variable1)
                  ->get();
    return $q;

}

结果没问题,从数据库中找到 ABCDEFG 记录。

但是,如果我使用大写和小写传递$ variable2,结果将为none:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('username', $variable2)
                  ->get();
    return $q;

}

,这是错误的,因为我需要忽略它是小写还是大写。

如何解决这个问题?

顺便说一下。我的db排序规则是 utf8_general_ci

1 个答案:

答案 0 :(得分:15)

试试这个:

function get_users()
{

    $q = $this->db->select('*')
                  ->from('users')
                  ->order_by('created asc')
                  ->like('LOWER(username)', strtolower($variable2))
                  ->get();
    return $q;

}