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

查询Microsoft Dynamics Web Api时如何对Dynamics内字段去空格后匹配?

解决方案

可以直接在查询语句的$filter条件中使用Dynamics 365 Web API支持的OData replace函数,先把存储的mobilephone字段内的所有空格替换为空,再和你预处理后的无空格手机号做等值匹配,即可命中所有格式的同号记录。

修改后的查询代码如下:

var mobile = "07900123456"; // 保持原有对用户输入去除所有空格的预处理逻辑即可

var queryString = "contacts?" +
                "$select=contactid&" +
                $"$filter=replace(mobilephone, ' ', '') eq '{mobile}'";

var contact = await GetAsync(queryString);

注意事项

  • 如果你的业务场景中手机号还可能包含横杠-、括号()等其他格式化字符,可以叠加replace函数处理,示例:replace(replace(mobilephone, ' ', ''), '-', '') eq '{mobile}'即可同时移除空格和横杠
  • 该语法适用于所有主流在线版本、V9.0及以上本地部署版本的Dynamics 365
  • 数据量较大的场景下,字段上的函数运算会消耗一定查询性能,长期使用建议新增业务规则:在联系人创建、更新手机号时自动移除所有特殊字符写入专用的标准手机号字段,后续直接查询该字段即可获得更好的查询性能
  • 生产环境使用建议优先做参数化查询处理,避免字符串拼接导致的注入风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:03