0

複数のスレーブテーブルから単一のマスターテーブルにデータを転送するクエリがあります。これが私のクエリの1つの例です:

$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 NULLてみてくださいTRIM(zip) <> ""

于 2012-04-05T20:35:21.927 に答える
0

uniqueidが主キーだと思います。おそらく、マスターテーブルには、都市などの値が空の同じキーの行がすでに含まれています。その場合は、INSERTIGNOREの代わりにREPLACEを使用する必要があります。

于 2012-04-05T20:39:35.970 に答える