Ich versuche, eine Bedingung in eine SQL WHERE-Klausel zu schreiben, die den Spaltenvergleich mit einer Variablen erzwingt, die in Kleinbuchstaben verglichen werden soll. Die Funktion addExpression führt dies jedoch nicht aus (da dadurch der Ausdruck in die Feldauswahl und nicht in die where-Klausel eingefügt wird.
Folgendes habe ich versucht:
$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();
Und das:
$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();
Der zweite wird ungültig und der erste verursacht das oben erwähnte Problem. Irgendwelche Gedanken oder Vorschläge?
Danke, Patrick