От CTE до кода хранимой процедуры mySQL
Это запрос с использованием sql CTE для создания транзитивного замыкания таблицы, содержащей отношения между пользователями (ребра графа). Как это можно сделать в MySQL?
WITH RECURSIVE transitive_closure (a, b, distance, path_string) AS (ВЫБЕРИТЕ расстояние a, b, 1 AS, || '' || б || '' AS path_string ОТ края ГДЕ a = 1 - источник СОЮЗ ВСЕХ ВЫБЕРИТЕ tc.a, eb, tc.distance + 1, tc.path_string || еб || '' AS path_string ОТ края КАК e ПРИСОЕДИНЯЙТЕСЬ к transitive_closure AS tc ON ea = tc.b ГДЕ tc.path_string НЕ НРАВИТСЯ '%' || еб || '%') SELECT * FROM transitive_closure ЗАКАЗАТЬ А, В, расстояние;
или, по крайней мере, найти все простые пути между двумя узлами без создания транзитивного замыкания для всех узлов. код взят из: http://techportal.inviqa.com/2009/09/07/graphs-in-the-database-sql-meets-social-networks/