当'0'存在时,Mysql ORDER BY不工作

时间:2014-03-05 15:58:15

标签: php mysql

下面的SQL片段会返回我想要的任意数量条目的结果,直到我为累积分数插入值为0的行。一旦我这样做,我没有得到任何结果。 cumulativescore是一个INT字段,没有任何约束。

$stmt = $dbh->prepare("
   select
      cumulativescore
   from 
      reporting
   order by
      cumulativescore asc
");

更新

我认为发生的事情是,当我使用下面的代码时,fetchColumn会为第一列返回0,因为它按升序排列,这会破坏我的循环。没有结果我的意思是$arr是空的但是从这个例子中我了解到这不是测试查询的最佳方法。如何使用fethchColumn并拥有0值?或者我是否需要作为关联数组获取并以此方式获取值?作为旁注,对于值/等测试PDO结果集的最合适的方法是什么?

while($tmp = $stmt->fetchColumn()){
   $arr[] = $tmp;
}

1 个答案:

答案 0 :(得分:1)

while(($tmp = $stmt->fetchColumn()) !== false){
   $arr[] = $tmp;
}

三个等号也检查变量的类型。如果函数不完全返回false,则为true。如果它返回0,则为true