概述
无限级分类的话题很多人在考虑,之前我也考虑过,最近朋友要用就重新整理了一下写成博文,分享给大家。
基本思路是使用一个“分类链”的字段,把父级分类的id用逗号隔开,然后使用find_in_set函数判断是否是某个分类的子分类。
表结构:
CREATE TABLE IF NOT EXISTS `link` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(10) NOT NULL,
`pid` int(11) NOT NULL,
`link` text NOT NULL,
`level` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;添加数据
INSERT INTO `link` (`id`, `name`, `pid`, `link`, `level`) VALUES
(1, 'name1', 0, '1', 1),
(2, 'name2', 0, '2', 1),
(3, 'name3', 1, '1,3', 2),
(4, 'name4', 2, '2,4', 2),
(5, 'name5', 3, '1,3,5', 3),
(6, 'name6', 4, '2,4,6', 3),
(7, 'name7', 3, '1,3,7', 3),
(8, 'name8', 4, '2,4,8', 3);测试
select * from link where id = 1
select * from link where pid = 1 //下一级
select * from link where find_in_set(1, link) //所有下级 包含自己
select * from link where find_in_set(1, link) and level >1 //所有下级 不包含自己
select * from link where find_in_set(1, link) and id <> 1
select * from goods where cid in (select id from link where find_in_set(3, link)) //商品表关联
最后
以上就是美满大船为你收集整理的MySQL的一级分类_mysql 无限级分类的全部内容,希望文章能够帮你解决MySQL的一级分类_mysql 无限级分类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复