$sql = "SELECT * FROM orders WHERE order_number>=$lower AND order_number<=$upper";
我最近迁移了服务器和
on the previous server this statement included ALL records between $upper and $lower.
新服务器
excludes the NULL records between $upper and $lower
。不完整的订单连续保存,没有order_number(s);和一个 NULL 值。
我假设
MYSQL.conf file
中有一个设置。或者我正在使用不同版本的 MYSQL,该版本不再支持在查询中自动包含 NULL 值。 最佳答案
我不知道为什么旧服务器包含空值,因为这会违反关于与空值进行比较应该如何工作的基本规则。如果你想要空值,你的查询应该是这样的:
Select ...
From orders
Where ( order_number >= $lower And order_number <= $upper )
Or order_number Is Null
关于MYSQL 在查询中包含 NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7338159/