在MySQL查询中返回NULL值以及非NULL

Mr.*_*inn 0 mysql

以下是表格列的摘录:

DateCol
…
2009-01-03
2009-01-08
NULL
NULL
2010-01-01
NULL
2010-01-07
NULL
2012-01-01
2012-01-02
2012-01-03
2012-01-04
2012-01-05
2012-01-06
…
Run Code Online (Sandbox Code Playgroud)

当我查询表并要求返回低于2012-01-01的4个值时,我得到以下结果:

2009-01-03
2009-01-08
2010-01-01
2010-01-07
Run Code Online (Sandbox Code Playgroud)

我目前的查询是:

SELECT * FROM myDatabase.MyTable WHERE DateCol < "2012-01-01" ORDER BY DateCol LIMIT 4
Run Code Online (Sandbox Code Playgroud)

如何强制查询返回NULL值?我正在寻找一个会产生下面输出的声明(请注意,顺序与表中显示的顺序相同).有一个主键列决定了订单.有没有办法返回值和NULL并"保留"该顺序?

2010-01-01
NULL
2010-01-07
NULL
Run Code Online (Sandbox Code Playgroud)

Joh*_*nde 6

用于IS NULL获取NULL

SELECT * 
FROM myDatabase.MyTable 
WHERE DateCol < "2012-01-01" OR DateCol IS NULL 
ORDER BY (CASE WHEN DateCol IS NULL then 1 ELSE 0 END)
LIMIT 4
Run Code Online (Sandbox Code Playgroud)