如何在cakephp ORM的find方法中使用SQL IN运算符

aya*_*aya 10 orm cakephp find in-operator

我是cakephp的初学者,我想IN在find方法中使用SQL 运算符,我有单词表.
我的代码是:

$this->Word->find('Word.wordid in (83,82)');
Run Code Online (Sandbox Code Playgroud)

,此代码创建此查询:

SELECT `Userword`.`userwordid`, `Userword`.`userid`, `Userword`.`wordid`, 
`Userword`.`date`, `Userword`.`levelid` FROM `userwords` AS `Userword` WHERE 
`Userword`.`wordid` = (82) 
Run Code Online (Sandbox Code Playgroud)

但我需要这个查询

SELECT `Userword`.`userwordid`, `Userword`.`userid`, `Userword`.`wordid`, 
Userword`.`date`, `Userword`.`levelid` FROM `userwords` AS `Userword` WHERE 
`Userword`.`wordid` IN (83,82)
Run Code Online (Sandbox Code Playgroud)

怎么能得到这样的查询(使用IN运算符)
谢谢.

mar*_*ark 25

你需要让蛋糕照顾它 - 只需使用它,因为它是一个字符串(但要确保它是一个数组):

$arrayOfIds = [1, 5, ...];
$this->Word->find('all', array(
    'conditions' => array('Word.wordid' => $arrayOfIds)
));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这仅对CakePHP <= 2.x有效.在3.x中,您需要再次手动添加IN:''Word.wordid IN'=> $ arrayOfIds` (18认同)