我正在尝试将条件写入SQL WHERE子句中,以强制将列比较与要以小写形式进行比较的变量进行比较。但是,addExpression函数并不能完成此操作(因为这是将表达式放入字段选择中,而不是where子句中。
这是我尝试过的:
$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();
第二个无效,第一个导致我上面提到的问题。有什么想法或建议吗?
谢谢,帕特里克