我有兩個數據庫,一個非常大(5 GB),另一個更小,使用作爲cron作業運行的PHP進行更新,以從大數據庫。在SQL數據庫中插入/更新/刪除條目的PHP代碼
到目前爲止,我已經能夠從大數據庫中提取數據並將其插入小數據庫中,如果該行尚不存在的話。
這是一個數據庫行的樣子:
123456 TeamA-TeamB 1.14 4.30 7.60
(id, eventname, odds1, oddsX, odds2)
的PHP需要一)檢查該行是否存在,B1),添加它,如果它不存在,B2),如果它確實存在檢查做的值odds1,oddsX和odds2不同,c)如果他們這樣做,更新值。
這是做了的代碼)和B1):
$SQL_INSERT="INSERT IGNORE INTO oddsnavi_baby.calc (id, eventname, odds1, oddsX, odds2) VALUES ('$eventid', '$eventname', '$odds1', '$oddsX', '$odds2')";
mysql_db_query($database_baby, $SQL_INSERT) or die("Failed Query of " . $SQL_INSERT);
如何改變這一部分獲得該行更新如果任odds1,oddsX或現有值odds2比那些不同打算寫入數據庫?如果的任何值不同,那麼如果該行將被更新也是好的,因爲前兩個不會改變。
你爲什麼不使用select查詢檢查的目的,然後,如果其他人返回null插入查詢,如果差價不爲空選擇查詢然後更新查詢 – 2012-04-07 10:57:26
大數據庫有15.000.000行。我認爲每次通過33.000行較小的數據庫運行查詢會太慢,如果存在,我正在尋找更快的解決方案。 – 2012-04-07 11:30:18