求一条sql语句,替换现在的 IN()的查询方式
0
分类表:
字段 id, name, parentid, arrchild
CREATE TABLE `category` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`parentid` int(10) unsigned NOT NULL,
`arrchild` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
文章表:
nid, title, catid
CREATE TABLE `news` (
`nid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`catid` int(10) unsigned NOT NULL,
`title` varchar(255) NOT NULL COMMENT '标题',
PRIMARY KEY (`nid`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
文章表 catid 对应 分类表的 id。 目前我把每一个分类自己以及它的子分类, 都以 1,2,3,4,5 这种格式存储在 arrchild中的,
用 in (1,2,3,4,5) 来查询完成的。但是数据大了 应该性能很低。
有没有高手 帮帮忙, 查询 category表中 一个分类下(包括子分类)的所有的文章。
字段 id, name, parentid, arrchild
CREATE TABLE `category` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`parentid` int(10) unsigned NOT NULL,
`arrchild` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
文章表:
nid, title, catid
CREATE TABLE `news` (
`nid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`catid` int(10) unsigned NOT NULL,
`title` varchar(255) NOT NULL COMMENT '标题',
PRIMARY KEY (`nid`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
文章表 catid 对应 分类表的 id。 目前我把每一个分类自己以及它的子分类, 都以 1,2,3,4,5 这种格式存储在 arrchild中的,
用 in (1,2,3,4,5) 来查询完成的。但是数据大了 应该性能很低。
有没有高手 帮帮忙, 查询 category表中 一个分类下(包括子分类)的所有的文章。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
悟 - 取是能力,舍是境界 2015-11-25 回答
赞同来自: 刘凡
分类表用With as 表表达式 递归获取所有无限级子类
然后连接文章表。