色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql二級菜單表

錢琪琛2年前7瀏覽0評論

MySQL二級菜單表 - 基本介紹

MySQL二級菜單表通常用于設(shè)計網(wǎng)站中的多級分類菜單,例如商品分類、新聞分類等。基本上,二級菜單表包含兩個字段:一個是id字段,用于唯一標(biāo)識每個分類,另一個是pid字段,用于記錄每個分類的父分類id。

MySQL二級菜單表 - 數(shù)據(jù)結(jié)構(gòu)

具體的MySQL二級菜單表數(shù)據(jù)結(jié)構(gòu)可以如下:id字段是主鍵,pid字段是外鍵。其中,頂級分類的pid為0。

CREATE TABLE `menu` (
`id` int(11) NOT NULL,
`pid` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`url` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `pid` (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

MySQL二級菜單表 - 數(shù)據(jù)插入

最開始,我們需要往表中插入頂級分類,pid為0。每次插入子分類時需要指定它的父分類id。例如,插入一級分類“電子產(chǎn)品”,代碼如下:

INSERT INTO `menu` (`id`, `pid`, `name`, `url`) VALUES (1, 0, '電子產(chǎn)品', '');

接著,插入其子分類“手機”,代碼如下:

INSERT INTO `menu` (`id`, `pid`, `name`, `url`) VALUES (2, 1, '手機', '/mobile');

MySQL二級菜單表 - 數(shù)據(jù)查詢

為了獲取一個分類的所有子分類,我們需要使用遞歸查詢。下面是一個MySQL遞歸查詢代碼示例:

WITH RECURSIVE cte AS (
SELECT * FROM `menu` WHERE `id` = 1
UNION ALL
SELECT m.* FROM `menu` m JOIN cte ON m.`pid` = cte.`id`
)
SELECT * FROM cte;

這個代碼將返回所有id為1的分類,以及id為1的分類的所有子分類。