MySql запрос в торт PHP Api

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."%"))
                                            ));

может ли кто-нибудь помочь мне сделать двоичный запрос, используя cakephp api....

Теги:
cakephp-2.1

1 ответ

3
Лучший ответ

Хорошо... ты был почти там. Вам нужно только поставить поле в скобке, чтобы сообщить 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."%"))
                           ));
  • 0
    Спасибо большое, Айман работает отлично :)
  • 1
    В моем случае (Cake 2.3) мне также пришлось убрать пробел после BINARY , чтобы Cake не избежал этого слова.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню