2012-12-30 71 views
1

我想更新MS Access 2010中的一個選定列。但是當我使用下面的更新查詢
MS Access更新全部tarih列值。當我只寫下面的Select查詢時,它的工作原理是正確的。但是當我在嵌套更新查詢中使用它時更新查詢更新全部爲tarih列值。我能做什麼?MS Access SQL更新第一列表查詢更新所有未選擇的列

UPDATE words 
SET tarih='12' 
WHERE 
    tarih = (SELECT FIRST(tarih) 
      FROM words 
      WHERE tarih='11') 

回答

1

這樣的查詢應具有相同的影響,因爲這一個:

UPDATE words SET tarih='12' 
WHERE tarih = '11'; 

用簡單的英語,它會在所有行tarih是11.但是改變tarih到12,如果你的words表包含多行,其中tarih是11,你想tarah只有那些行的一個改爲12,你需要一種方法來告訴它的那些行的,就應更新數據庫。

例如,如果您的words表包含名爲id的自動編號主鍵字段,則以下查詢應該執行您所需的操作。

UPDATE words SET tarih='12' 
WHERE id = DMin("id", "words", "tarih='11'"); 

嘗試類似的方法適應您的實際words表。您實際上不需要使用自動編號字段。可以使用另一種主鍵字段。如果您的表不包含主鍵,請考慮添加一個主鍵。如果沒有主鍵,您可以使用字段組合來唯一標識哪一行應該更新。但是,如果沒有唯一標識每行的字段組合,那麼只有幾個匹配項中的「第一個」才能夠使用UPDATE

+0

非常感謝。那是一個好主意。但DMIN不MS Access 2010中我使用SET tarih此查詢UPDATE話= '12' WHERE ID =(SELECT MIN(ID)從文字WHERE tarih = '11' )工作 – cejoseph