Здравствуйте. Есть вот такой запрос (написан на SQL и PHP):
foreach ($words as $word) {
$tmp[] = 'CONCAT(UPPER(authors.title), " - ", UPPER(name)) LIKE UPPER("%' . $word . '%")';
}
if (!empty($tmp)) {
$query = 'SELECT items.id FROM items';
$query .= 'JOIN item_authors ON item_authors.item_id = items.id
JOIN authors ON authors.id = item_authors.author_id
WHERE ' . implode(" OR ", $tmp);
$items_ids = DB::query(Database::SELECT, $query)
->execute()
->as_array();
}
Запрос работает, если находит в таблице item_authors запись. И не работает, если не находит. Как сделать, чтобы работал всегда? Я думаю, что это из-за того, что если запись не найдена, то появляются проблемы с CONCAT (нету первого параметра). И из-за этого не работает. Как исправить?