【发布时间】:2011-05-20 16:08:11
【问题描述】:
我正在创建一个视图,其中包含必须按难度排序的问题。
我的想法是:
- 先提出新问题(少于 10 个回答)
- 第二个回答没有错误的问题
- 最后是按难度排序的其他问题
计算难度的方式是(answerCorrect / answerIncorrect)
问题是我认为这个视图的很多查询都会被完成,我怀疑这个查询很慢,我不知道是否有办法做得更快。
alter view questionLevel as select *, 0 as ordenacio from question where statsAnswerCorrect + statsAnswerIncorrect < 10
union
select *, 1 as ordenacio from question where
statsAnswerCorrect + statsAnswerIncorrect >= 10
and statsAnswerIncorrect = 0
union
select *, 2 as ordenacio
from question where questionId IN (
select questionId from question where statsAnswerCorrect + statsAnswerIncorrect >= 10
and statsAnswerIncorrect > 0 )
order by ordenacio asc, ( statsAnswerCorrect / statsAnswerIncorrect) desc
有什么想法吗?
【问题讨论】:
标签: mysql view query-optimization