在MySQL中,如果要循環(huán)向上找到上級(jí)文章,可以使用遞歸循環(huán)查詢。下面是一個(gè)簡(jiǎn)單的示例代碼:
DELIMITER $$
CREATE FUNCTION find_parent_article (article_id INT) RETURNS INT
DETERMINISTIC
BEGIN
DECLARE parent_id INT;
SELECT parent_id INTO parent_id FROM articles WHERE id = article_id;
IF parent_id IS NULL THEN
RETURN article_id;
END IF;
RETURN find_parent_article(parent_id);
END $$
DELIMITER ;
SELECT find_parent_article(7); -- 查找ID為7的文章的上級(jí)文章ID
上面的代碼定義了一個(gè)MySQL函數(shù)find_parent_article
,該函數(shù)接受一個(gè)文章ID,遞歸查詢出文章的上級(jí)文章ID,并返回結(jié)果。
該函數(shù)的實(shí)現(xiàn)方式是先查詢出當(dāng)前文章的parent_id
,如果parent_id
為空,則返回文章自己的ID,否則繼續(xù)遞歸查詢parent_id
,直到查詢到頂層文章。
使用該函數(shù)可以方便地查詢一篇文章的所有上級(jí)文章,代碼也清晰易懂,適合用于開發(fā)復(fù)雜的CMS系統(tǒng)等場(chǎng)景。