MYSQL在查询中包含NULL

Jef*_*eff 3 mysql sql

$sql = "SELECT * FROM orders WHERE order_number>=$lower AND order_number<=$upper";
Run Code Online (Sandbox Code Playgroud)

我最近迁移了服务器 on the previous server this statement included ALL records between $upper and $lower.

新服务器excludes the NULL records between $upper and $lower.

不完整的订单连续保存,没有order_number; 和一个NULL值.

我假设有一个设置MYSQL.conf file.或者我使用的是不同版本的MYSQL,它不再支持自动包含查询中的NULL值.

Tho*_*mas 5

我不知道为什么旧服务器包含空值,因为这违反了关于如何与空值进行比较的基本规则.如果你想要空值,你的查询应该是这样的:

Select ...
From orders
Where ( order_number >= $lower And order_number <= $upper )
    Or order_number Is Null
Run Code Online (Sandbox Code Playgroud)