需要在mysql数据库做一个表,类似这样,
这个问题的核心在于如何动态的将所有学科都赋予一个以2递增的数字类别
select b.num,a.学科中文字段,a.学科内容
from xueke_table a left join (
SELECT @row_number:=@row_number + 2 as num,s.学科中文字段
FROM (select distinct 学科中文字段 from xueke_table ) s,(select @orw_number:=0) t ) b
很简单:
假设你第一张表是Table1 , 表结构是 (id , crouse_type , crouse_name)
第二张表是Table2 , 表结构是 (id , tid , crouse_name, other)
其中tid是第一张表的关键字 id , 现在要把这两张表关联并按照顺序查出来:
select t1.crouse_type, t1.crouse_name, t2.id,t2.other from Table1 t1
join Table2 t2 on t1.id=t2.tid
order by t1.id
参考:
select case A when '语文' then 2 when '英语' then 4 when '数学' then 6 end ,B from 表名
1、创建一张表,存放树状结构数据;
2、表字段至少包括:id,name,pid;name:学科名称,pid:父类ID;
3、Excel数据中添加pid,比如说语文、数学这些的pid是“0”,语文的id是“2”,英语的id是“4”,这样古诗的id根据需要顺延就可以,pid是“2”,文言文的id也是顺延,pid也是“2”,同理,听力和阅读理解的pid都是“4”;
4、Excel数据导入数据库表即可;
5、最终的表结构是每条数据都有pid,结构是一棵树。
这个题其实有个矛盾点,
你是想有唯一的排序规则还是随机排序(每次顺序都不一样)?
如果是唯一排序,让每次查询结果一样,那肯定得手动定义每个学科的编号,可以用一个表来定义,或者在查询sql后面加上
order by case when a='语文' then 2 when a='英语' then 4 ....(枚举所有) end
如果只是想随机取个序号,那就不一定语文非得是2,随便弄个序号乘以2就是了
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!