您可以使用一個存儲的函數,它將遞歸地獲取根路徑並與您的父級連接。
DELIMITER $$
DROP FUNCTION IF EXISTS `get_category`$$
CREATE FUNCTION `get_category`(cat_id int) RETURNS VARCHAR(255)
READS SQL DATA
BEGIN
DECLARE c_id INT;
DECLARE p_id INT;
DECLARE count INT;
DECLARE cat_name VARCHAR(255);
DECLARE cat_path VARCHAR(255);
set c_id = cat_id;
SELECT parent_category_id, category_name INTO p_id, cat_name FROM categories WHERE category_id = c_id;
set c_id = p_id;
set cat_path=cat_name;
set count=0;
WHILE (c_id IS NOT NULL) DO
SELECT parent_category_id, category_name INTO p_id, cat_name FROM categories WHERE category_id = c_id;
set c_id = p_id;
set cat_path = concat_ws('>',cat_name,cat_path);
set count = count + 1;
IF count=10 THEN
SET c_id = NULL;
END IF;
END WHILE;
RETURN cat_path;
END
$$
DELIMITER ;
,然後調用這個函數我已經做了全面的檢查,以避免無限循環使用
select getcategory(category_id);
Herre ..
更好地利用它的服務器pgoramming語言。 – Oyeme 2012-07-12 09:20:09
它正在編程。在列表中可以分頁,我想對該查詢使用限制。在我看到的購物車開源中的某處,但我不記得他們是如何完成的。 – VibhaJ 2012-07-12 09:23:43
請向我們展示表結構,也就是說,我想要2獲得行產品2.1 – 2012-07-12 09:23:46