无限分类 帅选 一二层 数据 [ 新手入门 ]
工作期间,每个人可能都会跳槽,到每个地方接手的项目可能也不一样,每个地方的项目设计都有些大同小异, 可能不是很符和你的口味,下面看看一个需求,先看看表设计:
看看表设计 这是个店铺分类表:
CREATE TABLE `shop_category` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '店铺分类id',
`shop_id` int(11) NOT NULL COMMENT '店铺id',
`shop_cat_name` varchar(50) NOT NULL COMMENT '店铺分类名称',
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父分类',
`sort_order` tinyint(1) NOT NULL DEFAULT '0' COMMENT '分类排序',
PRIMARY KEY (`id`)
)
简单的插入几条数据:
INSERT INTO `shop_category` VALUES ('1', '1', '饰品', '0', '0');
INSERT INTO `shop_category` VALUES ('2', '1', '衬衫', '1', '0');
INSERT INTO `shop_category` VALUES ('3', '1', '牛仔裤', '0', '0');
INSERT INTO `shop_category` VALUES ('4', '1', '衬衫', '3', '0');
INSERT INTO `shop_category` VALUES ('5', '1', '衬衫', '1', '0');
INSERT INTO `shop_category` VALUES ('13', '1', '上衣', '3', '0');
INSERT INTO `shop_category` VALUES ('15', '1', '鞋子', '13', '0');
INSERT INTO `shop_category` VALUES ('16', '1', '鞋子', '15', '0');
INSERT INTO `shop_category` VALUES ('17', '1', '珂卡芙','15', '0');
INSERT INTO `shop_category` VALUES ('18', '1', '鞋子', '17', '0');
INSERT INTO `shop_category` VALUES ('19', '1', '全部', '5', '0');
INSERT INTO `shop_category` VALUES ('20', '1', '女鞋', '5', '0');
这是个无限分类的表,每个商品栏目下面可能有很多的子栏目,可以无限的往下加,好像一颗树一样 当有一天你的 上级 要求你的这些数据只要一二层 开放,其他子层先不放出来,这时候感觉有点儿蛋疼, 呀的,还是暂时开放,不上永久的,这些数据又不能动,咋办:写个程序巴拉巴拉的循环,终于搞定了,谁知莫天 老大来检查代码发现你呀的程序不合格 被骂了一通,只能重新写,又蛋疼,你把所有的取出来吧,还好办,一条语句把所有的取出来不就好了,这下可好 偏偏让我取一二层的 只能回去学习 MySQL 了,辛苦了半天,又写出了条语句:
(SELECT p.* FROM shop_category p, (SELECT id FROM shop_category WHERE shop_id=1 and parent_id=0 ) e WHERE (p.parent_id!=0 and p.parent_id=e.id)) UNION (SELECT * FROM shop_category WHERE shop_id=1 and parent_id=0 )
终于把店铺为 1 的一二层数据给取出来了,哈哈,多么的简单,非要这么复杂,哈哈, 最近无聊 发表存在感,大家别打我
共 0 条回复
没有找到数据。
liuxuean 深圳
注册时间:2013-04-06
最后登录:2019-08-14
在线时长:19小时48分
最后登录:2019-08-14
在线时长:19小时48分
- 粉丝5
- 金钱1035
- 威望0
- 积分1225