MYSQL在查询中包含NULL $sql=“SELECT*FROM orders\u number>=$lower AND order\u number

MYSQL在查询中包含NULL $sql=“SELECT*FROM orders\u number>=$lower AND order\u number,mysql,sql,Mysql,Sql,我不知道为什么旧服务器包含空值,因为这违反了有关空值比较应如何工作的基本规则。如果您想要空值,您的查询应该如下所示: $sql = "SELECT * FROM orders WHERE order_number>=$lower AND order_number<=$upper"; 选择。。。 从命令 Where(order_number>=$lower和order_number whichMySQL版本number?无法说明行为发生变化的原因(我很惊讶任何版本的MySQL都会在该

我不知道为什么旧服务器包含空值,因为这违反了有关空值比较应如何工作的基本规则。如果您想要空值,您的查询应该如下所示:

$sql = "SELECT * FROM orders WHERE order_number>=$lower AND order_number<=$upper";
选择。。。
从命令

Where(order_number>=$lower和order_number which
MySQL版本
number?无法说明行为发生变化的原因(我很惊讶任何版本的MySQL都会在该查询中返回null),但您看到的新行为是正确的,而旧行为是错误的。解决方案-确保列不是nullMySQL客户端版本:5.0.77 |更改空值可能会起作用。但系统正在运行,我无法/不会更改以测试此。谢谢。”或订单号为空返回数据库中的所有空值。我想将其限制为值之间的空记录。@Jeff-将结果限制为空行“值之间”是什么意思?空顺序号不是“值之间”任何东西。@Jeff-换一种方式说,如果order_number为空,您如何确定具有空order_number的给定行是否应该出现在结果集中?请记住,表是无序行集的集合。因此,除非您有专门捕获此inf的列,否则没有条目顺序的概念如果是这种情况,那么我们需要知道如何确定如果order_编号为空,应该显示哪些行。我假设有一个设置,确定当从表中选择ALL时,是否会返回所有按插入到数据库中顺序排列的行。我假设这是因为database在上一台服务器上运行。我推测情况并非如此,我需要使用与订单号相关的记录号来选择all作为解决方法。
Select ...
From orders
Where ( order_number >= $lower And order_number <= $upper )
    Or order_number Is Null