Возможно ли сделать mysql-рекурсию?

vb

Новичок
Возможно ли сделать mysql-рекурсию?

Что-то подсказывает что возможно, но все упирается в как.
Для чего это... предположим есть таблица
id - идентификатор
parent - идентификатор родителя
view_type - тип отображения

Задача - сделать выборку записей у которых view_type = 'self' при помощи однократного вызова функции mysql_query()

Спасибо.
 

Profic

just Profic (PHP5 BetaTeam)
select * from tbl where view_type = 'self';
?
Рекурсии в обычном ее понимании нет. Если известна максимальная глубина, можно джойнить таблицу саму на себя n раз.
 

basboy

Новичок
Если "Задача - сделать выборку записей у которых view_type = 'self' при помощи однократного вызова функции mysql_query()", то тут никакая рекурсия не нужна.
 

vb

Новичок
Извиняюсь, забыл указать еще одно условие - выборку нужно начинать с определенной записи и вниз по "детям".
Пример
| id | parent | view_type |
-----------------------------------------------
1 0 group
2 1 group
3 1 self
4 2 self
5 0 CCatalogue
6 5 self
Если начальная запись поиска 1, то результат должен быть записи 3-я и 4-я,
если начальная запись поиска 3, то результат должен быть записи 3-я.

Кому надо тестовы данные:
[SQL]CREATE TABLE vb_test_main (
id int(4) NOT NULL UNIQUE,
parent int(4),
view_type varchar(255),
PRIMARY KEY (id));
INSERT INTO vb_test_main VALUES ('1', '0', 'group');
INSERT INTO vb_test_main VALUES ('2', '1', 'group');
INSERT INTO vb_test_main VALUES ('3', '1', 'self');
INSERT INTO vb_test_main VALUES ('4', '2', 'self');
INSERT INTO vb_test_main VALUES ('5', '0', 'CCatalogue');
INSERT INTO vb_test_main VALUES ('6', '5', 'self');[/SQL]

Profic
Все верно, но ввиду вновь введенного условия этот метод не приемлим.
Жаль, я вчера тоже покапался в документации ничего не нашел, но надеялся может все же что-то есть чего не знаю :(...
Нет не известна заранее глубина, хотя может и имеет смысл ввести дополнительное поле, но если честно очень-очень не люблю "плодить" данные которые и так понятны.
Чтож пусть пост повисит, может кто-нибудь, что-нибудь интересное предложит....

basboy
Да, Вы правы, доп. условие выше.
 

basboy

Новичок
vb
Предложу тебе БД использовать для выборки, а для рекурсии используй PHP
 

vb

Новичок
Фанат
Не уж то Вы наивно полагаете, что никто ничего не пытался и не искал? Если можно по теме.

basboy
Так и сделано, но хочется красиво :)
 

basboy

Новичок
vb
Красиво -- это когда надёжно и быстро работает, а экзотика часто или кидает глюки или притормаживает.
 

vb

Новичок
basboy
На мой взгляд, глюки кидает не экзотика, а плохое исполнение, а чтобы знать будет притормаживать или нет надо сначало попробовать.
 

vw

Новичок
модифицируйте структуру таблицы. с такой не получится.
 

basboy

Новичок
vb
Спорить не буду, у каждого на это свои взгляды.

vw
А как ты можешь определить подходит структура или нет, если ты не знаешь функции этой таблицы?
Лучьше внеки конкретные предложения, а мы все посмотрим и поучимся.
 

vw

Новичок
Знаю, потому что сам такие использую. А варианты решения как раз ищу.
 
Сверху