Access UPDATE查询使用WHERE+LIKE条件匹配不到行语法问题
问题原因
Access 默认的 Jet/ACE SQL 语法和标准 SQL 的 LIKE 通配符规则不同:默认模式下多字符匹配使用*而非%,这是你原语句匹配不到行的核心原因。
修正方案
方案1(适配Access默认查询环境)
直接替换通配符即可:
UPDATE Products SET field7 = 'Spray Guns Service Kit' WHERE ProductCode LIKE '*ASPASK*' ;
方案2(兼容所有Access查询模式)
如果后续可能在ODBC/ADO连接场景下执行,或者开启了Access的ANSI 92查询模式,可以用ALIKE关键字,它固定支持%作为通配符,不受查询模式影响:
UPDATE Products SET field7 = 'Spray Guns Service Kit' WHERE ProductCode ALIKE '%ASPASK%' ;
前置验证建议
执行UPDATE前可以先执行SELECT语句确认匹配行数是否符合预期,避免误操作:
SELECT * FROM Products WHERE ProductCode LIKE '*ASPASK*'
注意:你原需求要赋值的是
Spray Guns Service Kit(复数Guns),原写的SQL里是Spray Gun Service Kit(单数Gun),请按需确认字符串正确性。
内容的提问来源于stack exchange,提问作者l0ls0rry
相关产品推荐
相关产品推荐

