Почему этот запрос returing все строки с /
при использовании равной в присоединитьсяMySQL возвращает все строки с присоединиться слеш в значении
MySQL 5.6 Схема установки:
CREATE TABLE entity
(
id int(10) unsigned not null AUTO_INCREMENT,
parent_id int(10) unsigned,
title varchar(200),
path varchar(200),
primary key(id),
CONSTRAINT `SelfKey` FOREIGN KEY (`parent_id`) REFERENCES `entity` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
);
INSERT INTO entity (id, parent_id, title,path)
VALUES (1, null, 'parent title','1'),(2, 1, 'child 1','1/2'),
(3, 1, 'child 2','1/3')
Query 1 :
select c.title,c.path from entity e inner join entity c on c.path = e.id
Результаты:
| title | path |
|----------------|------|
| parent title | 1 |
| child 1 | 1/2 |
| child 2 | 1/3 |
Я имею в виду использование
select c.title,c.path from entity e inner join entity c on c.path = e.id
вместо
select c.title,c.path from entity e inner join entity c on c.path like concat(e.id,'/%')
первый дает гораздо лучше Performence, а также возвращает родительскую строку вместе с детьми, то второй один
Что вы хотите, чтобы вернуться? –
Я знаю, что могу получить детей, запросив 'на c.path, например concat (e.id, '/%')', просто хотел узнать здесь, почему он сохраняет все строки, пока он должен возвращать только родительский ie. 'path = 1', это ускользает от проблемы – reverbnation