You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQL更新Access表报错:条件表达式中数据类型不匹配

Access SQL更新时数据类型不匹配的解决办法

嘿,我来帮你搞定这个问题!你遇到的「条件表达式中数据类型不匹配」错误,根源出在布尔型字段的比较方式上。

你的table2.Ind应该是Access里的**是/否(Boolean)**字段,这种字段存储的是布尔值,不是字符串类型的文本。你原来的代码里用"TRUE"(带引号的字符串)去和它比较,Access会把两者判定为不同数据类型,自然就报错了。

给你两种修正后的写法,都能解决问题:

写法1:用INNER JOIN的标准多表更新(推荐)

Access对多表UPDATE的支持更偏向JOIN语法,这种写法更清晰规范:

UPDATE table1 
INNER JOIN table2 ON table1.Name = table2.Name
SET table1.ReportName = "UPDATED"
WHERE table2.Ind = TRUE;

写法2:基于你原代码调整条件

如果你想保留原来的多表逗号分隔写法,只需要把条件里的"TRUE"改成不带引号的TRUE(或者用Access内部表示真的-1也可以):

UPDATE table1, table2 
SET table1.ReportName = "UPDATED" 
WHERE table1.Name = table2.name AND table2.Ind = TRUE;

简单说下原理:Access里的「是/否」字段,底层用-1表示“是(TRUE)”,0表示“否(FALSE)”,所以你直接用TRUE或者-1去匹配都能生效,但用带引号的字符串就会触发类型不匹配的错误。

内容的提问来源于stack exchange,提问作者dinodan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:29:43