IS NULL在列中找不到空行

时间:2015-01-14 14:36:29

标签: php mysql sql null concatenation

$sql = $pdo->query('SELECT p.* FROM prospects p
        LEFT JOIN exported_leads e
        on p.id = e.lead_id WHERE DATEDIFF(NOW(), e.last_export_date) > 90 AND e.p". $partner_id ." IS NULL');

这是我正在使用的查询。这是db的外观(通过一些例子): http://i.imgur.com/KrOv36e.png

这里是db的结构:http://i.imgur.com/pqYXPuw.png

如您所见,export_id = 5的行的last_export_date超过90天前。所以,如果我删除

AND e.p". $partner_id ." IS NULL')

从查询中,它找到该行。但是,如果我仍然拥有它,我的专栏中填充的是p2。然后你可以看到该字段为NULL。这意味着IS NULL应该有效吗?但是,当我运行查询时,它找不到该行。

每当我导入到该表时,我都会自动将除了一个p *字段之外的所有字段设置为NULL。你可以看到它在db中的值为NULL。 我假设查询没有看到这些值为NULL,所以我怎么能改进这个查询来实际找到那些说" NULL"?

的列

1 个答案:

答案 0 :(得分:0)

你搞砸连接&引用:

$sql = $pdo->query('SELECT p.* 
                    FROM prospects p
                    LEFT JOIN exported_leads e ON p.id = e.lead_id
                    WHERE DATEDIFF(NOW(), e.last_export_date) > 90 
                      AND e.p' . $partner_id . ' IS NULL');