我希望有一個包含3個字段的表,並使用REPLACE更新此表以覆蓋行而不是在兩個字段匹配後續添加時創建新行。在2列必須匹配唯一行時使用REPLACE INTO MySQL數據庫
換句話說,我想要做這樣的事情 '表' 具有行 'A', 'B' 和「c'-
REPLACE INTO表集合C = $ var_c其中A = $ var_b和b = $ var_b
因此,它將檢查是否存在AND b匹配的行,並且只有在沒有要更新的行時纔將c寫入新行。 (對不起,說明明顯)
這是我所做的而不是使用REPLACE。這段代碼實現了我需要的功能,但我確信有一種更有效的方法可以做到這一點。由於
$query1 = "SELECT COUNT(*) FROM table WHERE a = $var_a AND b = $var_b";
$result = @mysql_query ($query1);
$num = mysql_fetch_row($result);
if($num[0] != 0) {
$query = "UPDATE table SET c = $var_c WHERE a = $var_a AND b = $var_b";
}
else {
$query = "INSERT INTO table VALUES ($var_a, $var_b, $var_c)";
}
$result = @mysql_query ($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
'(a,b)'上有唯一鍵嗎?如果有的話,那麼'REPLACE INTO ...'應該可以工作。 – Hammerite