0

データ検索の場合、mysqlで大文字と小文字を区別する検索にbinaryキーワードを使用する必要があります。これは、作成したいクエリです。

    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は、cakephpapiを使用してバイナリクエリを作成するのに役立ちます...。

4

1 に答える 1

3

わかりました...あなたはほとんどそこにいました。BINARYキーワードをフィールド名として扱わないように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."%"))
                           ));
于 2012-10-08T16:35:21.007 に答える