sorry_i_noob
@sorry_i_noob

Почему SQL запрос с CONCAT работает, если находит запись для CONCAT и не работает, если не находит? Как исправить?

Здравствуйте. Есть вот такой запрос (написан на 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 (нету первого параметра). И из-за этого не работает. Как исправить?
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ynblpb_spb
дятел php
LEFT JOIN
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы