Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法对MySql查询的这部分进行排序(升序/降序)?_Mysql - Fatal编程技术网

我无法对MySql查询的这部分进行排序(升序/降序)?

我无法对MySql查询的这部分进行排序(升序/降序)?,mysql,Mysql,我想对这些元素进行升序/降序排序 查询部分: sum(CASE WHEN a.question_id=39 AND u.answer_id =215 THEN 1 ELSE 0 END) as optcount1, sum(CASE WHEN a.question_id=39 AND u.answer_id =216 THEN 1 ELSE 0 END) as optcount2, sum(CASE WHEN a.question_id=39 AND u.answer_id =217 THEN

我想对这些元素进行升序/降序排序

查询部分:

sum(CASE WHEN a.question_id=39 AND u.answer_id =215 THEN 1 ELSE 0 END) as optcount1,
sum(CASE WHEN a.question_id=39 AND u.answer_id =216 THEN 1 ELSE 0 END) as optcount2,
sum(CASE WHEN a.question_id=39 AND u.answer_id =217 THEN 1 ELSE 0 END) as optcount3,
sum(CASE WHEN a.question_id=39 AND u.answer_id =218 THEN 1 ELSE 0 END) as optcount4,
完整查询:

 SELECT 39 AS ques_id,215 as optid1,216 as optid2,217 as optid3,218 as optid4, 
'Easy to start the business' as optans1,
'Lower tax rate than a corporation' as optans2,
'Liability is shared' as optans3,
'Owner has total control and say over business' as optans4, 
sum(CASE WHEN a.question_id=39 AND u.answer_id =215 THEN 1 ELSE 0 END) as optcount1,
sum(CASE WHEN a.question_id=39 AND u.answer_id =216 THEN 1 ELSE 0 END) as optcount2,
sum(CASE WHEN a.question_id=39 AND u.answer_id =217 THEN 1 ELSE 0 END) as optcount3,
sum(CASE WHEN a.question_id=39 AND u.answer_id =218 THEN 1 ELSE 0 END) as optcount4, 
'217' as answer, 4 as count FROM `user_training_answers_statistics` as u,
answers as a WHERE a.question_id='39' AND u.answer_id=a.answer_id

任何人请给我这个问题的解决方案。

将它包装在另一个查询中,然后进行排序:

  select * from
    (SELECT 39 AS ques_id,215 as optid1,216 as optid2,217 as optid3,
            218 as optid4, 'Easy to start the business' as optans1,
            'Lower tax rate than a corporation' as optans2,
            'Liability is shared' as optans3,
            'Owner has total control and say over business' as optans4, 
            sum(CASE WHEN a.question_id=39 AND u.answer_id =215 THEN 1 ELSE 0 END) 
            as optcount1,
            sum(CASE WHEN a.question_id=39 AND u.answer_id =216 THEN 1 ELSE 0 END) 
            as optcount2,
            sum(CASE WHEN a.question_id=39 AND u.answer_id =217 THEN 1 ELSE 0 END) 
           as optcount3,
           sum(CASE WHEN a.question_id=39 AND u.answer_id =218 THEN 1 ELSE 0 END) 
           as optcount4, '217' as answer, 4 as count 
     FROM user_training_answers_statistics as u,
          answers as a
     WHERE a.question_id='39' AND u.answer_id=a.answer_id) as tmpTable
 ORDER BY optcount1, optcount2, optcount3, optcount4 ASC;

您好,感谢您的回复,但这里optcount是动态值,它可能是2、4或6之类的值。在这种情况下,我如何对该值进行排序。$sql=选择$qid作为问题id,$optid$optname$选项'$corrctans'作为答案,$j作为来自用户的计数\u培训\u答案\u统计数据作为u,答案作为a,其中a.QUEST\u id='$qid'和u.ANSWERT\u id=a.ANSWERT\u id;这些是动态值:$optid$optname$option。