answer表的数据结构:aid id answerBody isRight
402886153a8223a5013a8223d6730006 402886153a8223a5013a8223d6540005 客户端标记语言 1
402886153a8223a5013a8223d6730007 402886153a8223a5013a8223d6540005 服务器端标记语言 0
402886153a8223a5013a8223d6730008 402886153a8223a5013a8223d6540005 服务器端脚本语言 0
402886153a8223a5013a8223d6730009 402886153a8223a5013a8223d6540005 客户端脚本语言 1id为外键,同一id记录行数不固定我需要把 answerBody 转换成 选项A 选项B 选项C 选项D 这样。
同时第一条数据 转换成列之后,根据isRight字段 决定 是否将其添加进 正确选项转换之后需要的格式:
id 问题 正确选项 选项A 选项B 选项C 选项D 。
402886153a8223a5013a8223d6540005 XXXXXXX? A,D, 客户端标记语言 服务器端标记语言
402886153a8223a5013a8223d6730006 402886153a8223a5013a8223d6540005 客户端标记语言 1
402886153a8223a5013a8223d6730007 402886153a8223a5013a8223d6540005 服务器端标记语言 0
402886153a8223a5013a8223d6730008 402886153a8223a5013a8223d6540005 服务器端脚本语言 0
402886153a8223a5013a8223d6730009 402886153a8223a5013a8223d6540005 客户端脚本语言 1id为外键,同一id记录行数不固定我需要把 answerBody 转换成 选项A 选项B 选项C 选项D 这样。
同时第一条数据 转换成列之后,根据isRight字段 决定 是否将其添加进 正确选项转换之后需要的格式:
id 问题 正确选项 选项A 选项B 选项C 选项D 。
402886153a8223a5013a8223d6540005 XXXXXXX? A,D, 客户端标记语言 服务器端标记语言
无法满足需求。
MySQL交叉表
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...
我弄了一个十分复杂的SQL语句解决了这个问题。晚点贴上来。
你回复的帖子,晚上回去看看。
(case when(select isRight from nfmsdb.answer where id=sub.id
order by aid limit 0,1)=1 then 'A' else '' end ),
(case when(select isRight from nfmsdb.answer where id=sub.id
order by aid limit 1,1)=1 then 'B' else '' end ),
(case when(select isRight from nfmsdb.answer where id=sub.id
order by aid limit 2,1)=1 then 'C' else '' end ),
(case when(select isRight from nfmsdb.answer where id=sub.id
order by aid limit 3,1)=1 then 'D' else '' end ),
(case when(select isRight from nfmsdb.answer where id=sub.id
order by aid limit 4,1)=1 then 'E' else '' end )
)as 'rightAnswer',sub.difficulty,lps.name,
(select answerBody from nfmsdb.answer where id=sub.id
order by aid limit 0,1) as '选项A',
(select answerBody from nfmsdb.answer where id=sub.id
order by aid limit 1,1) as '选项B',
(select answerBody from nfmsdb.answer where id=sub.id
order by aid limit 2,1) as '选项C',
(select answerBody from nfmsdb.answer where id=sub.id
order by aid limit 3,1) as '选项D',
(select answerBody from nfmsdb.answer where id=sub.id
order by aid limit 4,1) as '选项E'
FROM (nfmsdb.subject sub
inner join nfmsdb.lorepoint lps on lps.id = sub.lorePoint_id )
inner join nfmsdb.course cous on lps.coid = cous.coid;
有高手有更好的解决方案。欢迎分享。代码地址:http://user.qzone.qq.com/5789492#!app=2&via=QZ.HashRefresh&pos=1350823584