1
我想在MySQL中編寫一個存儲過程,使用where條件獲取帳戶, 將它除以10,並根據結果更新行數。如何使用mySQL編寫存儲過程,只更新x個記錄數?
例如,如果總帳戶數爲100,我會鎖定100/10 = 10條記錄並更新它們。
我是新來的這個。任何的意見都將會有幫助。
謝謝
我想在MySQL中編寫一個存儲過程,使用where條件獲取帳戶, 將它除以10,並根據結果更新行數。如何使用mySQL編寫存儲過程,只更新x個記錄數?
例如,如果總帳戶數爲100,我會鎖定100/10 = 10條記錄並更新它們。
我是新來的這個。任何的意見都將會有幫助。
謝謝
我會建議做兩步法。
select @rowcount := count(1) from account;
然後使用LIMIT
設置限制對行進行更新:
UPDATE account
SET column1 = desiredvalue
LIMIT @rowcount/10;
希望這有助於。
編輯:
select @rowcount := ROUND(count(1)/10) from account;
UPDATE account
SET column1 = desiredvalue
LIMIT @rowcount;
或
DECLARE rowcount INTEGER;
SELECT ROUND(count(1)/10) INTO rowcount from account;
UPDATE account
SET column1 = desiredvalue
LIMIT rowcount;
Yogendra您好,感謝您的help.How到一個值分配給在mySQL的一個變量。我的意思是我如何可以將count的總數分配給rowCount,如上面使用mySql所提到的那樣。 var rowcount < - 從帳戶(psuedo語句)中選擇count(1)給出錯誤。 – Gendaful
@Gendaful:更新了答案。請檢查。 –
感謝Yogendra,但它在LIMIT @ rowcount/10處給出錯誤;我將查詢用作select @rowcount:= count(*)from account; UPDATE account SET column1 = desiredvalue LIMIT @ rowcount/10; – Gendaful