SQL检查NULL字段

时间:2015-06-17 16:43:15

标签: php mysql database pdo

已解决:我知道有些字段是空的应该已经抓住了支票,但它们是空的而不是NULL。所以,当我检查NULL字段时,它没有找到任何字段。

我正在尝试检查具有特定名称的行中的元素是否包含任何空白字段。我用它来查找是否有任何值为null,如果有,则更新和行为null。但它工作不正常。我相信我的所有列名都正确,但我看不出问题是什么。这是我的疑问:

    //this goes through each row 1 by 1 and checks if an element is null
            $stmt = $dbh->prepare("SELECT count(*) from csgo_item_list WHERE Item_Name =:itemname AND (Image_Link IS NULL OR Quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL OR item_type IS NULL OR skin_quality IS NULL OR skin_color IS NULL)");
//"$mydata->market_name" returns a valid name in the table
            $stmt->bindValue(':itemname', $mydata->market_name);
            $stmt->execute();
            $count = $stmt->fetchColumn();
            echo $count;

当我这样做时,有些行确实有一些空字段,但当我回显$count时,它只返回0。这意味着我无法更新我的行,因为在检查之后我使用UPDATE的相同行:

if($count != 0){
$sql = $dbh->prepare("UPDATE csgo_item_list SET Quantity=:quantity, new_price=:newprice, Image_Link=:image_link, market_hash_name=:markethashname, last_update='1000-01-01 00:00:00', is_tradable='no', old_price=:oldprice, item_type=:type, , skin_quality=:skinquality, skin_color=:skincolor WHERE Item_Name=:itemname AND (Image_Link IS NULL OR Quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL OR item_type IS NULL OR skin_quality IS NULL OR skin_color IS NULL)");

我将发布我的数据库表的图像,从我检查过的所有匹配的名称: http://gyazo.com/5ab3f2676c44eb696b02a38a64d9742a

任何人都可以看到为什么这不起作用?

2 个答案:

答案 0 :(得分:1)

我知道有些字段应该是空的,应该已经检查了,但是它们是空的而不是NULL。因此,当我检查NULL字段时,它没有找到任何字段。

我必须做的是将所有空列设置为NULL:

UPDATE `table` SET `column` = NULL;

答案 1 :(得分:0)

" ....但是当我回显$ count时,它只返回0' s。这个mea ...."

if($count != 0){ ....

如果它返回所有' 0那么为什么你要比较"不等于"到0?

我认为应该是if ($count == O){