从具有空字段的数据库获取记录

时间:2016-04-14 15:17:52

标签: php mysql pdo

我有以下代码行来从数据库中检索记录:

    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname; charset=utf8;", $username, $password);
        $sql = $dbh->prepare("SELECT * FROM usa WHERE code = :code AND window1 = :oldrepeat AND spare <> :americinn  AND  url IS NOT NULL ORDER BY user ASC");
       $sql->execute(array(':code' => $code, ':oldrepeat' => $oldrepeat, ':americinn' =>$americinn));
        /*** fetch the results ***/
  $result = $sql->fetch();

在其他标准中,此查询应该返回仅在名为url的字段中包含某些内容的记录,但这不会发生。它返回的记录也有一个空的url字段。

我认为我做的事情根本就是错误但却看不出它是什么。

有人可以解决一些问题吗?

祝福

1 个答案:

答案 0 :(得分:1)

好吧,按以下方式编写查询:

SELECT * FROM usa WHERE code = :code AND window1 = :oldrepeat AND spare <> :americinn  AND  !ISNULL(url) ORDER BY user ASC

ISNULL是一个内置的MySQL函数,用于检查列的值是否为空。通过使用!(否定),您将只获得所需的行。

如果某列有空值,您可以尝试url!=''