множественное совпадение ключевых слов с db_like

Я использую db_select для запроса к базе данных, следующий код отлично работает, когда ключевое слово $ является любой строкой

 $result = db_select('my_table', 'mt')
        ->fields('mt')
        ->condition('my_column', '%' . db_like($keyword) . '%', 'LIKE')
        ->execute()
        ->fetchAllKeyed();

Как я могу заставить тот же запрос работать, когда ключевое слово $ предположительно является массивом строк типа («del», «mum»), если my_column - столбец местоположения, поэтому запрос вернет мне такие места, как Delhi, Mumbai.

4 голоса | спросил arpitr 11 +04002013-10-11T00:57:15+04:00312013bEurope/MoscowFri, 11 Oct 2013 00:57:15 +0400 2013, 00:57:15

1 ответ


9

Вы можете построить свой запрос, перебирая каждое ключевое слово и добавляя его как условие ИЛИ.

$db_or = db_or();
$query = db_select('my_table', 'mt');
$query->fields('mt');

foreach ($keywords as $keyword) {
    $db_or->condition('my_column', '%' . db_like($keyword) . '%', 'LIKE');
}

$query->condition($db_or);
$results = $query->execute()->fetchAllKeyed();
ответил Mike Vranckx 11 +04002013-10-11T01:24:48+04:00312013bEurope/MoscowFri, 11 Oct 2013 01:24:48 +0400 2013, 01:24:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132