MySQL使用MAX忽略WHERE子句

时间:2014-09-11 18:01:11

标签: php mysql pdo

我有一个奇怪的问题,我在主键上使用MAX而查询忽略了我的WHERE子句。

$isWorking= 0;
$q = $db->prepare("SELECT versionId, isFinished FROM users WHERE userId = :userId");
$q->bindParam(':userId',$userId);
$q->execute();
$qr = $q->fetchAll(PDO::FETCH_ASSOC);
if($q->rowCount() > 0){
  foreach($qr as $row){
       if($row['isFinished'] == '1'){
           $isWorking = 0;
       }else{
           $isWorking = 1;
       }
   }return $isWorking;
 }

在表格中只有一个条目。

versionId: 44 isFinished : 1  userId : 20

当我执行上述查询并提供包括' 20'在内的各种userId时,我为每个人提供$isWorking = 0。当我将查询更改为:

"SELECT MAX(versionId)...

我为提供的ID提供$isWorking = 0,但为其他人提供"1" !!

这怎么可能?它忽略了我的WHERE子句,并且提供的任何userId都运行查询...

0 个答案:

没有答案