0

我有一个查询,将数据从多个从表传输到一个主表。这是我的一个查询的示例:

$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部分或全部字段 (字段为、和)NULLNOT NULLzipkeywordscity

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

4

2 回答 2

2

尝试替换zip IS NOT NULLTRIM(zip) <> ""

于 2012-04-05T20:35:21.927 回答
0

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

于 2012-04-05T20:39:35.970 回答