$sql = "SELECT * FROM orders WHERE order_number>=$lower AND order_number<=$upper";
I migrated servers recently and
on the previous server this statement included ALL records between $upper and $lower.
The new server
excludes the NULL records between $upper and $lower.
Incomplete orders are saved consecutively without order_number(s); and a NULL value.
I assume there is a setting in the
MYSQL.conf file. Or I am using a different version of MYSQL that no longer supports automatically including the NULL value in a query.
I have no idea why the old server included null values as that would violate a fundamental rule about how comparison to nulls should work. If you want nulls your query should be something like:
Select ... From orders Where ( order_number >= $lower And order_number <= $upper ) Or order_number Is Null