как использовать оператор SQL IN в методе поиска cakephp ORM

я новичок в cakephp, и я хочу использовать оператор SQL IN в методе поиска, у меня есть таблица слов.
мой код:

$this->Word->find('Word.wordid in (83,82)');

, и этот код создает этот запрос:

SELECT `Userword`.`userwordid`, `Userword`.`userid`, `Userword`.`wordid`, 
`Userword`.`date`, `Userword`.`levelid` FROM `userwords` AS `Userword` WHERE 
`Userword`.`wordid` = (82) 

но мне нужен этот запрос

SELECT `Userword`.`userwordid`, `Userword`.`userid`, `Userword`.`wordid`, 
Userword`.`date`, `Userword`.`levelid` FROM `userwords` AS `Userword` WHERE 
`Userword`.`wordid` IN (83,82)

как получить такой запрос (используя оператор IN)
спасибо.


person aya    schedule 25.02.2012    source источник


Ответы (1)


вам нужно позволить торту позаботиться об этом - просто используйте его, поскольку это была строка (но убедитесь, что это массив):

$arrayOfIds = [1, 5, ...];
$this->Word->find('all', array(
    'conditions' => array('Word.wordid' => $arrayOfIds)
));
person mark    schedule 25.02.2012
comment
Обратите внимание, что это действительно только для CakePHP ‹= 2.x. В 3.x вам нужно будет снова вручную добавить IN: 'Word.wordid IN' => $arrayOfIds - person mark; 22.09.2014
comment
не работает, он создает запрос типа SELECT User.email, User.id` FROM users AS User WHERE User.specialization_id = '26,19'` - person urfusion; 17.09.2015
comment
Вы не использовали массив! - person mark; 18.09.2015