MS Access SQL更新表查询的第一列更新所有未选择的列

时间:2012-12-30 08:37:22

标签: ms-access

我想只更新MS Access 2010中的一个选定列。但是当我使用下面的更新查询时 MS Access更新所有tarih列值。当我写下面的Select查询时,它可以正常工作。但是当我在嵌套更新查询中使用它时,更新查询会更新所有tarih列值。我该怎么办?

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

1 个答案:

答案 0 :(得分: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只能进行多次匹配的“第一次”。