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

在Ready API的JDBC查询中使用带属性的LIKE语句报错求助

在ReadyAPI JDBC查询中使用带参数的LIKE语句解决方法

我之前在ReadyAPI里处理JDBC查询的LIKE语句时也踩过一模一样的坑,给你几个亲测有效的解决思路:

  • 方法一:在属性值中直接包含通配符
    把你定义的ser属性值设置为CLI%(或者你需要的任意带%的格式),然后SQL语句写为:

    select * from database where service like :ser
    

    这种方式利用JDBC参数绑定的特性,让驱动完整解析带通配符的参数值,既不会有语法错误,还能避免SQL注入风险,是最推荐的做法。

  • 方法二:在SQL语句中用字符串拼接函数
    如果不想修改属性值,也可以在SQL里把参数和通配符拼接起来,不同数据库的拼接语法略有不同:

    • MySQL/MariaDB 使用CONCAT函数:
      select * from database where service like CONCAT(:ser, '%')
      
    • Oracle 使用||拼接符:
      select * from database where service like :ser || '%'
      
    • SQL Server 使用+拼接符:
      select * from database where service like :ser + '%'
      

为什么你之前的写法会报错?

ReadyAPI的JDBC参数绑定会把:ser识别为一个完整的参数占位符,而你写的:ser%会被数据库当成一个未定义的参数名,自然会抛出语法错误。必须让参数占位符和通配符分开处理,要么把通配符整合到参数值里,要么用数据库的字符串拼接逻辑把两者结合起来。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:54:23