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

MS Access中如何正确查询以指定字符开头的姓名记录

MS Access 前缀匹配查询修正方案

需求说明

查询并返回姓氏或名字满足以下任意条件的患者的名、姓、邮箱信息:

  • 以K开头
  • 以Ma开头

原有代码问题

你先后编写的两段SQL均无法正常运行,核心问题有三点:

  1. 语法错误:LIKE匹配规则必须明确绑定对应字段,类似[LastName] LIKE 'K%' OR 'Ma%'的写法中,'Ma%'是独立字符串,没有关联字段,数据库无法识别该判断逻辑。
  2. 逻辑错误:
    • SQL中AND的运算优先级高于OR,未加括号明确分组时,数据库会优先计算AND连接的条件,最终判断逻辑和需求完全不符
    • 第二段调整代码错误使用AND连接同一个字段的两个前缀规则,相当于要求字段值同时以K和Ma开头,不存在符合该条件的记录
  3. 通配符兼容问题:MS Access 默认本地查询采用ANSI-89语法标准,多字符匹配通配符为*,代码中使用的%会被识别为普通百分号字符,无法实现前缀匹配效果。

正确可运行代码

推荐使用ALIKE关键字替代LIKE,可统一使用%作为通配符,不受Access查询模式、连接方式影响,兼容性最好:

SELECT FirstName, LastName, Email
FROM PATIENT
WHERE 
  (FirstName ALIKE 'K%' OR FirstName ALIKE 'Ma%')
  OR
  (LastName ALIKE 'K%' OR LastName ALIKE 'Ma%');

如果你仅在Access本地查询设计器中运行代码,也可以使用Access默认通配符写法:

SELECT FirstName, LastName, Email
FROM PATIENT
WHERE 
  (FirstName LIKE 'K*' OR FirstName LIKE 'Ma*')
  OR
  (LastName LIKE 'K*' OR LastName LIKE 'Ma*');

代码中用括号明确分组了同字段的匹配规则,确保逻辑判断顺序符合预期:只要名字满足任意一个前缀要求,或者姓氏满足任意一个前缀要求,对应的记录就会被返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:33:12