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

API调用时使用LIKE操作符实现区分大小写过滤的问题咨询

LIKE查询实现区分大小写过滤的方案

根据你使用的后端存储/API类型,可选以下几种方案:

方案1:直接修改数据库查询语法(适用自行开发的后端接口)

不同数据库的区分大小写语法不同,直接修改拼接的查询语句即可:

  • MySQL场景:默认LIKE不区分大小写,查询时追加BINARY关键字强制按二进制匹配即可,修改后代码如下:
    queryEvent.query = queryEvent.combo.displayField + " like binary " + "'%" + query + "%'";
    
    生成的过滤参数为filter=name%20like%20binary%20%27%25Test%25%27,即可实现区分大小写的模糊匹配。
  • PostgreSQL场景:原生LIKE默认就是区分大小写的,确认后端没有将LIKE替换为不区分大小写的ILIKE即可;也可以使用正则运算符~实现更强的区分大小写匹配。
  • SQL Server场景:查询时指定区分大小写的排序规则即可,示例代码如下:
    queryEvent.query = queryEvent.combo.displayField + " like " + "'%" + query + "%' COLLATE Chinese_PRC_CS_AS";
    
    排序规则后缀CS代表区分大小写,CI代表不区分,可根据实际业务调整排序规则名。

方案2:调用第三方API的场景

如果对接的是第三方封装好的API,无法直接修改数据库查询逻辑:

  • 优先查询对应API的官方文档,一般支持过滤的API都会提供区分大小写的控制参数,比如追加case_sensitive=true的全局参数,或者将like替换为平台指定的区分大小写运算符(如like_case等)。
  • 如果API本身不支持区分大小写过滤,可以在拿到接口返回结果后在前端做二次过滤,示例代码如下:
    // apiResponse为接口返回的原始数据列表
    const filteredList = apiResponse.filter(item => {
      const fieldValue = item[queryEvent.combo.displayField] || ''
      return fieldValue.includes(query)
    })
    

注意:你当前直接拼接SQL字符串的写法存在SQL注入风险,建议优先使用参数化查询的方式传递查询值,避免恶意输入篡改查询逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:36:02