Access SQL技术问询:多条件匹配字段并自动更新指定字段值
手把手教你写MS Access的更新SQL语句
别担心,刚接触SQL的时候谁都对着这些匹配规则犯懵,我来一步步给你讲清楚怎么实现你的需求!
首先,咱们先明确核心逻辑:根据Field1或者Field1/Field2的匹配情况,把符合条件的Field3改成"ZOO"。Access里最常用的是LIKE(通配符匹配,不用额外配置),CONTAINS需要开启全文索引,咱们先从简单通用的LIKE开始讲。
1. 仅当Field1匹配指定内容时更新
如果只要Field1里包含你要找的单词/字符(比如"Cam"或者"Camel"),就把Field3设为"ZOO",SQL语句是这样的:
UPDATE 你的表名 SET Field3 = "ZOO" WHERE Field1 LIKE '*你要找的内容*';
- 把
你的表名换成你实际的表名称; *是Access里的通配符,代表任意长度的任意字符,比如*Cam*会匹配所有包含"Cam"的内容(不管是开头、中间还是结尾,比如"Cam"、"Camel"、"CamAnimal"都会命中);- 如果要精确匹配整个字段内容,就去掉前后的
*,写成Field1 = "Camel"就行。
2. Field1或Field2任意一个匹配时更新
要是只要Field1或者Field2里有指定内容就更新,用OR把两个条件连起来就行:
UPDATE 你的表名 SET Field3 = "ZOO" WHERE Field1 LIKE '*你要找的内容*' OR Field2 LIKE '*你要找的内容*';
这个语句会把所有满足「Field1匹配」或者「Field2匹配」或者「两者都匹配」的记录的Field3改成"ZOO",完全符合你的需求~
关于CONTAINS的补充说明
如果你想用CONTAINS做更精准的全文搜索,得先给你的表和字段开启全文索引(Access里在表设计视图的「索引」里设置,或者通过菜单栏的工具操作),之后可以这么写:
UPDATE 你的表名 SET Field3 = "ZOO" WHERE CONTAINS(Field1, '你要找的单词') OR CONTAINS(Field2, '你要找的单词');
不过CONTAINS一般用于整词匹配,而且需要额外配置,新手先从LIKE入手会更省心。
新手必看的安全提示
执行UPDATE语句前,一定要先测试你的条件对不对!可以先写个SELECT语句看看哪些记录会被修改:
SELECT * FROM 你的表名 WHERE Field1 LIKE '*你要找的内容*' OR Field2 LIKE '*你要找的内容*';
确认结果是你想要的,再执行UPDATE,避免误改数据(最好提前备份一下表哦)!
内容的提问来源于stack exchange,提问作者wezzer
相关产品推荐
相关产品推荐

