MySQL选择IS NOT NULL的多个字段不起作用

时间:2012-04-05 20:31:47

标签: php mysql insert null

我有一个查询将数据从多个从表传输到单个主表中。以下是我的一个查询示例:

$insert = mysql_query("
INSERT IGNORE INTO master (title, description, keywords, url, uniqueid, city, state, zip, datetime, expiretime)
SELECT title, description, keywords, url, uniqueid, city, state, zip, datetime, expiretime
FROM slave1 WHERE zip IS NOT NULL AND keywords IS NOT NULL AND city IS NOT NULL") or die(mysql_error());

运行此查询后,数据行将插入master 部分或全部字段 NULL,我将其指定为NOT NULL (字段为zipkeywordscity

似乎mysql完全忽略了IS NOT NULL参数。有谁知道解决方案?

2 个答案:

答案 0 :(得分:2)

尝试将zip IS NOT NULL替换为TRIM(zip) <> ""

答案 1 :(得分:0)

我怀疑 uniqueid 是主键。可能,您的表已包含具有相同键的行,其中包含 city 的空值等。在这种情况下,您应该使用REPLACE而不是INSERT IGNORE。

相关问题