0

对于数据检索,我需要在 mysql 中使用二进制关键字进行区分大小写的搜索,这是我要进行的查询

    SELECT username FROM users 
WHERE  BINARY first_name LIKE 'eph%'
OR     BINARY last_name LIKE 'eph%'
OR      BINARY username LIKE 'eph%'

这是我在 cakephp 中没有二进制的查询

$this->User->find('list', array(
            'fields' => array('User.username'),
            'conditions' => array("OR" => 
                            array("BINARY User.last_name LIKE" => $search_data."%","BINARY User.username LIKE" => $search_data."%",
                                    "BINARY User.first_name LIKE" => $search_data."%"))
                                            ));

任何 1 都可以帮助我使用 cakephp api 进行二进制查询 ....

4

1 回答 1

3

好的……你快到了。只需将 Field 放在括号中,告诉 CakePHP 不要将 BINARY 关键字作为字段名来处理

相信这应该有效:

$this->User->find('list', array(
        'fields' => array('User.username'),
        'conditions' => array(
                       "OR" =>array(
                                "BINARY (`User`.`last_name`) LIKE" => $search_data."%",
                                "BINARY (`User`.`username`) LIKE" => $search_data."%",        
                                "BINARY (`User`.`first_name`) LIKE" => $search_data."%"))
                           ));
于 2012-10-08T16:35:21.007 回答