मैं एक SQL WHERE क्लॉज में एक शर्त लिखने की कोशिश कर रहा हूं जो एक चर की तुलना में कॉलम को लोअरकेस में तुलना करने के लिए मजबूर करता है। हालाँकि, addExpression फ़ंक्शन इसे पूरा नहीं कर रहा है (क्योंकि वह अभिव्यक्ति को फ़ील्ड चयन में डाल रहा है, न कि जहां क्लॉज़।
यहाँ मैं कोशिश की है:
$category = 'mobile wifi';
$query = db_select('taxonomy_term_data', 'ttd')
->fields('ttd', array('tid'));
$query->innerJoin('taxonomy_vocabulary', 'tv', 'ttd.vid = tv.vid');
$query->addExpression("LOWER(ttd.name) = $category");
$result = $query->condition('machine_name', 'images_cat', '=')
->execute()
->fetchAssoc();
और इस:
$category = 'mobile wifi';
$query = db_select('taxonomy_term_data', 'ttd')
->fields('ttd', array('tid'));
$query->innerJoin('taxonomy_vocabulary', 'tv', 'ttd.vid = tv.vid');
$result = $query->condition('machine_name', 'images_cat', '=')
->condition('LOWER(ttd.name)', $category, '=')
->execute()
->fetchAssoc();
दूसरा अमान्य हो जाता है और पहले वाला मेरे ऊपर बताई गई समस्या का कारण बनता है। कोई विचार या सुझाव?
धन्यवाद, पैट्रिक