2011-05-30 12 views
8

कोडिनेटर के सक्रिय रिकॉर्ड SQL क्वेरी में राउंड ब्रैकेट प्रतीक कैसे हैं? उदा।कोडनिर्देशक - activerecord के साथ ब्रैकेट्स?

SELECT * FROM `shops` WHERE (`shopid` = '10' OR `shopid` = '11') AND `shopid` <> '18' 
+0

CI3.0 आप ऐसा कर सकते हैं http://www.codeigniter.com/userguide3/database/query_builder .html # क्वेरी-ग्रुपिंग – Calvin

उत्तर

5

पूरा करने के लिए कैसे मुझे लगता है कि आप की तरह कुछ कर सकता है: सिंटैक्स के बारे में

$where = "(`shopid` = '10' OR `shopid` = '11')"; 

$this->db->where($where) // or statement here 
     ->where('shopid <>', '18') // chaining with AND 
     ->get('shops'); 

नहीं पूरी तरह से यकीन है कि, मैं इस बंद मेरे सिर के ऊपर लिख रहा हूँ। अगर यह घर नहीं आता है तो मैं इसे देख लूंगा यदि यह काम नहीं करता है।

+0

यह डाउनवॉट क्यों किया गया था? – cabaret

+0

इससे आपको धन्यवाद देने में मदद मिली। – busycoding

1

तुम बस की तरह कुछ कर सकते हैं:

$this->db->select('field')->from('shops')->where("(`shopid` = '10' OR `shopid` = '11'")->where("`shopid` <> '18'"); 
$query = $this->db->get(); 

आप अपनी खुद की धाराएं लिख सकते हैं मैन्युअल रूप से :

$ जहां = "name = 'जो' और स्थिति = 'बॉस' या स्थिति = 'सक्रिय' ";

$ यह-> डीबी-> जहां ($ जहां);

स्रोत: http://www.codeignitor.com/user_guide/database/active_record.html#where

11
$where="(`shopid` = '10' OR `shopid` = '11')"; 

$ this-> db-> जहां ($ जहां, शून्य, FALSE);

और के लिए और हालत उपयोग

$this->db->where('shopid <>', '18') 

यानी

$where="(`shopid` = '10' OR `shopid` = '11')"; 
$this->db->where($where, NULL, FALSE); 
$this->db->where('shopid <>', '18') 
1
$this->db->select() 
     ->from('shops') 
     ->where("'(`shopid` = '10' OR `shopid` = '11')") 
     ->where('shopid !=', 18); 

$this->db->get()->result(); 
संबंधित मुद्दे