IS NULL 在列中找不到空行
IS NULL doesnt find null rows in columns
$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');
这是我正在使用的查询。这是数据库的样子(有一些例子):
http://i.imgur.com/KrOv36e.png
这是数据库的结构:http://i.imgur.com/pqYXPuw.png
如您所见,export_id = 5 的行有一个 last_export_date 超过 90 天前。所以如果我删除
AND e.p". $partner_id ." IS NULL')
从查询中找到该行。但是,如果我仍然拥有它并且我正在填充的专栏是 p2。然后你可以看到该字段为NULL。这意味着 IS NULL 应该工作?但是,当我 运行 查询时,它找不到该行。
每当我导入那个 table 时,我都会自动将除一个 p* 字段之外的所有字段设置为 NULL。你可以看到它在数据库中有 NULL 作为值。
我假设查询没有将这些值视为 NULL,那么我如何改进此查询以实际找到那些显示 "NULL"?
的列
您在连接和引号方面一团糟:
$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');
$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');
这是我正在使用的查询。这是数据库的样子(有一些例子): http://i.imgur.com/KrOv36e.png
这是数据库的结构:http://i.imgur.com/pqYXPuw.png
如您所见,export_id = 5 的行有一个 last_export_date 超过 90 天前。所以如果我删除
AND e.p". $partner_id ." IS NULL')
从查询中找到该行。但是,如果我仍然拥有它并且我正在填充的专栏是 p2。然后你可以看到该字段为NULL。这意味着 IS NULL 应该工作?但是,当我 运行 查询时,它找不到该行。
每当我导入那个 table 时,我都会自动将除一个 p* 字段之外的所有字段设置为 NULL。你可以看到它在数据库中有 NULL 作为值。 我假设查询没有将这些值视为 NULL,那么我如何改进此查询以实际找到那些显示 "NULL"?
的列您在连接和引号方面一团糟:
$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');