我有一个查询,它将数据从多个从表传输到单个主表。下面是我的一个查询的示例:
$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 (字段为zip、keywords和city)。
看起来mysql完全忽略了IS NOT NULL参数。有人知道解决办法吗?
发布于 2012-04-05 20:35:21
尝试将zip IS NOT NULL替换为TRIM(zip) <> ""
发布于 2012-04-05 20:39:35
我怀疑唯一的才是主要的钥匙。也许,您的主表已经包含了具有相同键的行,这些行具有空的城市值,等等。在这种情况下,您应该使用替换而不是插入忽略。
https://stackoverflow.com/questions/10035579
复制相似问题