Подскажите как правильно задать запрос к БД?
Надо для фильтрации вытащить только те значения, которые указаны в фильтре - $data['filter_name'], $data['filter_mapcat'], $data['filter_status']. По имени и статусу все нормально выдает, но по Категории не хочет.
Код запроса:
$sql = "SELECT sp.*, spd.title, (SELECT cd.name FROM " . DB_PREFIX . "category_description cd WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd.category_id = sp.mapcat_id) AS category FROM " . DB_PREFIX . "seotags_page sp LEFT JOIN " . DB_PREFIX . "seotags_page_description spd ON (sp.seotags_page_id = spd.seotags_page_id) WHERE spd.language_id = '" . (int)$this->config->get('config_language_id') . "'";
if (!empty($data['filter_name'])) {
$sql .= " AND spd.title LIKE '" . $this->db->escape($data['filter_name']) . "%'";
}
if (!empty($data['filter_mapcat'])) {
$sql .= " AND category LIKE '%" . $data['filter_mapcat'] . "%'";
}
if (isset($data['filter_status']) && $data['filter_status'] !== '') {
$sql .= " AND sp.status = '" . (int)$data['filter_status'] . "'";
}
$sql .= " GROUP BY sp.seotags_page_id";
Проблема именно вот в этих строках:
if (!empty($data['filter_mapcat'])) {
$sql .= " AND category LIKE '%" . $data['filter_mapcat'] . "%'";
}
Какой запрос здесь правильно написать?