一、什么是遞歸查詢
遞歸查詢是指通過(guò)查詢自身表中的數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)的遞歸查詢。遞歸查詢?cè)趯?shí)際的開發(fā)中非常常見(jiàn),比如分類列表、部門列表等等。
二、Mysql遞歸查詢語(yǔ)句
Mysql中支持遞歸查詢,通過(guò)WITH RECURSIVE關(guān)鍵字來(lái)實(shí)現(xiàn)。WITH RECURSIVE關(guān)鍵字的語(yǔ)法如下:
amen_list) AS (itialent
UNION [ALL]ent
SELECT *ame;
amenitialentent表示遞歸查詢語(yǔ)句。
三、Mysql遞歸查詢實(shí)例
下面通過(guò)一個(gè)實(shí)例來(lái)演示Mysql遞歸查詢的使用。
amettt_id為0表示該分類為頂級(jí)分類。
首先,我們需要?jiǎng)?chuàng)建分類表并插入數(shù)據(jù):
CREATE TABLE category (
id INT PRIMARY KEY AUTO_INCREMENT,ame VARCHAR(50),t_id INT
amet_id) VALUES ('電子產(chǎn)品', 0);amet_id) VALUES ('手機(jī)', amet_id) VALUES ('筆記本電腦', amet_id) VALUES ('平板電腦', amet_id) VALUES ('華為手機(jī)', amet_id) VALUES ('小米手機(jī)', amet_id) VALUES ('蘋果手機(jī)', amet_id) VALUES ('聯(lián)想筆記本電腦', amet_id) VALUES ('戴爾筆記本電腦', amet_id) VALUES ('蘋果筆記本電腦', amet_id) VALUES ('華為平板電腦', amet_id) VALUES ('小米平板電腦', amet_id) VALUES ('蘋果平板電腦',
接下來(lái),我們通過(guò)遞歸查詢來(lái)獲取分類列表:
amet_id, level) AS (amet_id, 0
FROM categoryt_id = 0
UNION ALLamet_id, cl.level + 1
FROM category ct_id = cl.id
)ameame
FROM category_list
ORDER BY id;
itialentent是查詢子分類的語(yǔ)句,通過(guò)UNION ALL將兩個(gè)語(yǔ)句合并,得到分類列表。
本文介紹了Mysql中遞歸查詢的使用,通過(guò)WITH RECURSIVE關(guān)鍵字來(lái)實(shí)現(xiàn)。遞歸查詢?cè)趯?shí)際的開發(fā)中非常常見(jiàn),可以用來(lái)實(shí)現(xiàn)分類列表、部門列表等等。