2012-02-25 13 views
8

की खोज विधि में एसक्यूएल इन ऑपरेटर का उपयोग कैसे करें मैं केकफ़्पी में शुरुआती हूं, और मैं खोज विधि में 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 का उपयोग करके)
धन्यवाद।

उत्तर

22

आप केक पर यह समस्या दूर जाने की जरूरत है - बस इसे का उपयोग के रूप में यह एक स्ट्रिंग था (लेकिन यह एक सरणी है सुनिश्चित करें):

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

ध्यान दें कि यह CakePHP <= 2 के लिए ही मान्य है। एक्स। 3.x में आपको मैन्युअल रूप से फिर से जोड़ना होगा: 'Word.wordid IN' => $ arrayOfIds' – mark

+0

आपकी टिप्पणी –

+0

पर काम करने के लिए एक वोट दें यह 'SELECT 'उपयोगकर्ता' जैसी क्वेरी बनाते हैं।'email' , 'उपयोगकर्ता' '' उपयोगकर्ता 'के रूप में' उपयोगकर्ता 'के रूप में' उपयोगकर्ता '.'pecialpecial_id' = '26, 1 9'' – urfusion

संबंधित मुद्दे