2017-10-21 60 views
0
updaTE person.PersonPhone set PhoneNumber=Replace(PhoneNumber,Right(PhoneNumber,2),'90') 
where PhoneNumber IN 
(SELECT Top (3) PhoneNumber from person.PersonPhone 
where PhoneNumber like '%89') 

選擇頂部3工作正常,但當我用更新約104記錄更新。以89結尾的總記錄數爲200,但更新了104條記錄。子查詢工作正常,但當使用更新weired結果即將到來

+0

我正在使用的MySql數據庫 –

+0

將MySQL作爲標籤添加到您的問題中...始終指明哪個dbms –

+0

爲什麼在子查詢中使用'top 3'。即使有200條記錄以89結尾。您確定前3位數字的記錄數等於200嗎?我想它等於104.這就是你在這裏得到的。 – yesemsanthoshkumar

回答

0

將更新更改爲select以查看由於IN子句而得到的行。請注意,重複的電話號碼會導致「IN TOP(3)」返回3個以上的記錄。

相關問題