2009-07-28 11 views
43

मुझे उन सभी पंक्तियों को चुनने की आवश्यकता है जहां User.site_url शून्य नहीं है। यह नियमित MySQL क्वेरी में ऐसा करने के लिए काफी आसान है लेकिन यह केकपीएचपी में कैसे किया जाता है?केकपीएचपी: खोजें कि फ़ील्ड शून्य नहीं है

मैनुअल का उल्लेख है निम्नलिखित:

array ("not" => array (
     "Post.title" => null 
    ) 
) 

मैं निम्नलिखित लेकिन यह अभी भी सब कुछ

$this->User->find('all', array('conditions' => array('not' => array('User.site_url')))); 

उत्तर

92

मुझे लगता है कि लौटा रहा है इस तुम क्या मतलब है की कोशिश की है:

$this->User->find('all', array( 
    'conditions' => array('not' => array('User.site_url' => null)) 
)); 
+0

मैं नहीं मानता कि मैं ऐसा ही कुछ याद किया, जवाब में से दोनों के लिए धन्यवाद के लिए काम! – DanCake

+0

"और नहीं (User.site_url = NULL)" में अनुवाद करता है। तो मैं @GwynBleidd जवाब पसंद करता हूं ['user.site_url नल नहीं है']। –

16

आपका बस शून्य

$this->User->find('all', array('conditions' => array('not' => array('User.site_url'=>null)))); 
11

केक में, चाबियाँ और मूल्यों में शामिल होने से 'शर्तों' तत्व से WHERE स्थिति का निर्माण किया जाता है। इसका मतलब यह है कि यदि आप चाहें तो आप वास्तव में चाबियाँ प्रदान कर सकते हैं। उदाहरण के लिए:

array('conditions' => array('User.id'=>1)) 

पूरी तरह से

array('conditions' => array('User.id = 1')) 

अनिवार्य रूप से करने के लिए बराबर है, तो आप सिर्फ यह द्वारा अपनी समस्या को हल कर सकते हैं:

$this->User->find('all', array('conditions' => array('User.site_url IS NOT NULL'))); 
1

मेरे लिए यह काम ठीक:

$this->User->find('all', array('conditions' => array('User.site_url !=' => null)); 
3

आप इसे भी आजमा सकते हैं,

$this->User->find('all', array('conditions' => array('User.site_url <>' => null)); 

यह मेरे लिए ठीक काम करता है ..

1

'' बजाय null प्रयास करें:

$this->User->find('all', array('conditions' => array('User.site_url <>' => '')); 
+0

क्या आप कृपया वर्णन कर सकते हैं कि आप क्या करने का प्रयास कर रहे हैं, और आप जिस सटीक समस्या का सामना कर रहे हैं? इस लाइनर से ऐसा लगता है कि यह आपको '' इसके बजाय उपयोग करने के लिए कह रहा है कि आप अपनी क्वेरी में उपयोग कर रहे हैं। – Ravish

0

सरल प्रश्न के लिए:

$this->User->find('all', array(
    'conditions' => array(
     'User.site_url IS NOT NULL' 
)); 

लेकिन आप इसे करना चाहते हैं प्रश्नों में शामिल होने के बाद आपको इसमें शामिल होने की आवश्यकता है:

$this->User->find('all', array(
    'conditions' => array(
     'User.site_url IS NOT NULL' 
    ), 
    'joins' => array(
      array(
        'table' => $this->getTableName('default', 'table_name'), 
        'alias' => 'ModelName', 
        'type' => 'RIGHT', 
        'conditions' => array(
         'ModelName.id = User.join_field_id', 
         'ModelName.field IS NOT NULL', //<= this condition can be used on main (top) condition 
        ), 
       ), 

)); 
0

इसका मुझे

$this->set('inventory_masters',$this->InventoryMaster->find('all',array('order'=>$orderfinal,'conditions' => array('InventoryMaster.id' => $checkboxid,'not' => array('InventoryMaster.error'=>null))))); 
संबंधित मुद्दे