我想篩選數據庫記錄,如果有重複的記錄我會將記錄標記爲deleted = 1
。不幸的是,我無法正確更新我的記錄,我嘗試使用limit 1
更新記錄,但我只更新了1條記錄,如果我沒有使用limit 1
它將更新整個記錄。不正確的MySQL查詢更新
以上是我的數據庫表,我需要做的是,假設有一堆不同point_id
記錄和過濾我只1
。現在我想查詢按日期排序的記錄ASC
,並將所有記錄更新爲期望最後記錄的deleted = 1
。
這是我的源代碼。我現在面臨的問題是它會更新所有記錄,如果我使用LIMIT 1
它只會更新1條記錄。
while($total > 1){
$total--;
$sql = sprintf("SELECT *
FROM customers_profiles_game_logs
WHERE point_id='$points_filter_row[point_id]'
AND customer_id='$sql_customer_row[customer_id]'
ORDER BY date_created ASC");
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($query);
$num_rows = mysql_num_rows($query);
for ($i = 1; $i < $num_rows; $num_rows--) {
echo $sqli = sprintf("UPDATE customers_profiles_game_logs
SET deleted='1'
WHERE customer_id='$sql_customer_row[customer_id]'
AND point_id='$row[point_id]' LIMIT 1");
mysql_query($sqli) or die(mysql_error());
}
}
你想更新所有行或一行 – jmail
@jmail我想更新除最後一條記錄以外的所有行。 –
檢查我的答案。用sql在這裏提琴 – jmail