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

MS Access查询非预期结果排查:逻辑错误咨询

免责声明:本数据库无真实姓名,数据来自知名组织GCF(Goodwill Community Foundation)提供的免费在线教程,数据库来源为GCF官方Access 2016示例数据库。

数据库子集

名字姓氏城市
AlexHintonCary
AmayaGibsonRaleigh
DannyHaverfordRaleigh
DickWhitmanRaleigh
DenverFergusonRaleigh
DonHammCary
AlixMarsRaleigh
DwyaneJamesCary
DwightParkerRaleigh
AndrewBedingerRaleigh
DaneRaughtRaleigh
AndrzejWujekRaleigh
AlyssaUllmanRaleigh
DavidBarrettRaleigh
AnisaNaserRaleigh
AveryKellyRaleigh
DerekMacDonaldChapel Hill
AlexYuenCary
DavidBarrettRaleigh

查询问题分析

第一部分:查询正常工作

以下查询结果符合预期:

  • 自然语言描述:获取满足以下条件的姓名及城市:(名字以'a'开头且城市为'raleigh')或者(名字以'd'开头且城市不为'chapel hill')
  • 查询视图:(查询设置截图)
  • 查询结果:(符合预期的结果截图)

第二部分:查询失效

  • 自然语言描述:获取满足以下条件的姓名及城市:(名字以'a'开头且城市为'raleigh')或者(名字以'd'开头且城市不为'chapel hill')或者(名字以'd'开头且城市不为'cary')
  • 问题现象:查询结果仍包含来自'Chapel Hill'和'Cary'的数据,不符合预期
  • SQL语句:
SELECT Customers.[First Name], Customers.[Last Name], Customers.City
FROM Customers
WHERE (((Customers.[First Name]) Like "a*") AND ((Customers.City)="raleigh")) OR (((Customers.[First Name]) Like "d*") AND (Not (Customers.City)="raleigh")) OR (((Customers.[First Name]) Like "d*") AND (Not (Customers.City)="cary"));
  • 查询视图:(查询设置截图)
  • 查询结果:(不符合预期的结果截图)

问题原因解析

NOT的逻辑不太符合直觉,查询本身语法正常,但逻辑未匹配预期需求:

  • Not (Customers.City)="chapel hill" 会筛选出所有城市不是Chapel Hill的数据,自然包含Cary的记录
  • Not (Customers.City)="cary" 会筛选出所有城市不是Cary的数据,自然包含Chapel Hill的记录
    两个条件用OR连接时,只要满足其中一个就会被选中,导致Chapel Hill和Cary的记录都出现在结果里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:17:04