Tôi đang cố gắng viết một điều kiện vào mệnh đề WHERE của SQL để buộc so sánh cột với một biến được so sánh bằng chữ thường. Tuy nhiên, hàm addExpression không thực hiện được điều này (vì đó là đặt biểu thức trong vùng chọn, không phải là mệnh đề where.
Đây là những gì tôi đã thử:
$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();
Và cái này:
$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();
Cái thứ hai trở nên không hợp lệ và cái thứ nhất gây ra vấn đề tôi đã đề cập ở trên. Bất kỳ suy nghĩ hoặc đề nghị?
Cảm ơn, Patrick