这是这个问题的sqlfiddle。
我有一个类似的学生表
student_id | first_name | doing_well
-----------+------------+-----------
1 | John | NULL
2 | Jane | NULL
3 | Steve | 0
4 | Sue | 1
5 | James | 0
我想做的是根据doing_well
领域对学生进行排序。成绩好的学生1
排在最前面,成绩不好的学生排0
在最后,成绩不详的学生排NULL
在中间。
我试过使用ORDER BY FIELD()
没有成功
SELECT
*
FROM
students
ORDER BY
FIELD(doing_well,'0',NULL,'1')
我真的很想做到这一点并将未定义保留为NULL
,而不必将未定义更改为值。
最终结果应该是这样的
4 | Sue | 1
1 | John | NULL
2 | Jane | NULL
3 | Steve | 0
5 | James | 0
或者,可以使用 PHP 在查询后进行排序的答案是受欢迎的,但不是首选。