Значение родительской таблицы CONCAT() со значением дочерней таблицы, если родительское значение не равно нулю, с испольPhp

Кемеровские программисты php общаются здесь
Anonymous
Значение родительской таблицы CONCAT() со значением дочерней таблицы, если родительское значение не равно нулю, с исполь

Сообщение Anonymous »

Я работаю над запросом для функции автоматического предложения ajax.
Я использую следующий запрос:

Код: Выделить всё

SELECT
CONCAT(b.cat_name, ' > ', a.cat_name) as value,
a.cat_id as data
FROM
categories a
LEFT JOIN
categories b
ON b.cat_id = a.cat_parent_id
WHERE
a.cat_path LIKE '%health%'
OR a.cat_slug LIKE '%health%'
OR a.cat_name LIKE '%health%'
OR a.cat_legacy_path LIKE '%health%'
ORDER BY
a.cat_path ASC
LIMIT
500
Проблема возникает с корневыми категориями, где родительский_cat_id равен NULL.
Я все равно хотел бы, чтобы они появлялись в моих результатах, однако в нынешнем виде результаты для корневых категорий возвращаются пустыми.
Если это имеет какое-то значение, я делаю это с помощью CodeIgniter3, поэтому вот код построителя запросов, который я использую:

Код: Выделить всё

$search_term = strtolower($search_term);
$this->db->select("CONCAT(b.cat_name, ' > ', a.cat_name) as value, a.cat_id as data");
$this->db->from('categories a');
$this->db->like('a.cat_path', $search_term, 'both', false);
$this->db->or_like('a.cat_slug', $search_term, 'both', false);
$this->db->or_like('a.cat_name', $search_term, 'both', false);
$this->db->or_like('a.cat_legacy_path', $search_term, 'both', false);
$this->db->join('categories b', 'b.cat_id = a.cat_parent_id', 'left');
$this->db->order_by("a.cat_path", 'ASC');
$this->db->limit('500');
$query = $this->db->get();
В идеале мне бы хотелось, чтобы корневые категории (где cat_parent_id IS NULL) просто выбирались как a.cat_name в качестве значения, а не CONCAT(b.cat_name, ' > ', a.cat_name) в качестве значения.

Подробнее здесь: https://stackoverflow.com/questions/649 ... not-null-u

Вернуться в «Php»