2012-02-25 23 views
8

soy principiante en cakephp, y quiero usar el operador SQL IN en el método find, tengo la tabla de palabras.
mi código es:cómo usar el operador SQL IN en el método find de cakephp ORM

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

, y este código crear esta consulta:

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

pero necesito esta consulta

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

¿cómo se puede conseguir como esta consulta (utilizando en el operador)
gracias.

Respuesta

22

es necesario dejar que la torta de cuidar de que - sólo tiene que utilizar, ya que era una cadena (pero asegúrese de que es una matriz):

$arrayOfIds = [1, 5, ...]; 
$this->Word->find('all', array(
    'conditions' => array('Word.wordid' => $arrayOfIds) 
)); 
+15

Tenga en cuenta que esto sólo es válido para CakePHP <= 2. X. En 3.x tendrá que agregar manualmente IN nuevamente: ''Word.wordid IN' => $ arrayOfIds' – mark

+0

dar un voto por su comentario –

+0

no funciona construir consulta como' SELECCIONAR 'Usuario''email' , 'Usuario''id' FROM' users' AS 'User' WHERE' User'.'specialization_id' = '26, 19'' – urfusion

Cuestiones relacionadas