Значение родительской таблицы 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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