我有以下代码行来从数据库中检索记录:
$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
字段。
我认为我做的事情根本就是错误但却看不出它是什么。
有人可以解决一些问题吗?
祝福
答案 0 :(得分:1)
好吧,按以下方式编写查询:
SELECT * FROM usa WHERE code = :code AND window1 = :oldrepeat AND spare <> :americinn AND !ISNULL(url) ORDER BY user ASC
ISNULL
是一个内置的MySQL函数,用于检查列的值是否为空。通过使用!
(否定),您将只获得所需的行。
如果某列有空值,您可以尝试url!=''
。