ballerina.io SQL LIKE语句

问题描述

我目前正尝试在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%"
);