问题描述
我目前正尝试在ballerina.io中针对MariaDB执行以下sql语句。
计划sql:
select * FROM testDB where test LIKE '%BA%';
我得到一个包含所有数据的结果集。
ballerina.io:
var selectRet = testDB->select("select * FROM testDB where test LIKE '%?%'",testREC,"BA");
我得到一个空结果集。
版本:
芭蕾舞演员--version
jBallerina 1.1.2
语言规范2019R3
芭蕾舞女演员工具0.8.0
是否可以在ballerina.io中使用LIKE生成sql语句?
许多问候, 马丁
解决方法
将参数作为单独的文字字符串而不是某种模板变量传递给查询。要用通配符将其括起来,您需要在查询中使用concat()
:
var selectRet = testDB->select(
"select * FROM testDB where test like concat('%',?,'%')",testREC,"BA"
);
或者只是在代码中连接通配符(对我来说这看起来更干净):
var selectRet = testDB->select(
"select * FROM testDB where test like ?","%BA%"
);