WSO2 DSS在查询中使用LIKE而不从查询字符串中传递百分号

WSO2 DSS在查询中使用LIKE而不从查询字符串中传递百分号,wso2,wso2dss,Wso2,Wso2dss,我们正在使用WSO2 DSS并实现员工搜索API。这项服务提供了类似谷歌搜索的功能,当你开始键入匹配的结果时,就会返回 为此,我们必须在SQL语句中使用LIKE子句。如果我们尝试用下面的方式定义查询 方法1 选择列 从可清空 其中FirstName类似于“:pName%” 并尝试只传递服务URL中的字符串,因为它无法识别参数。它将通过“:pName”查询数据库 如果我们按照下面的方式定义它 方法2 从EMPTable WHERE FirstName中选择列,如:pName 然后从查询字符串中传递

我们正在使用WSO2 DSS并实现员工搜索API。这项服务提供了类似谷歌搜索的功能,当你开始键入匹配的结果时,就会返回

为此,我们必须在SQL语句中使用LIKE子句。如果我们尝试用下面的方式定义查询

方法1

选择列 从可清空 其中FirstName类似于“:pName%”

并尝试只传递服务URL中的字符串,因为它无法识别参数。它将通过“:pName”查询数据库

如果我们按照下面的方式定义它

方法2

从EMPTable WHERE FirstName中选择列,如:pName

然后从查询字符串中传递“SomeText%”,这样就可以了。第二种方法是一个糟糕的实现,因为百分号和引号往往会被编码并弄乱服务调用

方法3

从名为“?%”的可空列中选择列

这个方法我想用就用。问题是我想要像这样的东西

从名为“?%”或姓为“?%”的可空列中选择列

然后我必须定义两个输入参数,并要求服务用户将相同的输入传递给两个不同的参数


我们有没有办法实现方法1?或者对于方法3,我们可以给同一个参数两个序号?

您可以在SQL语句中使用Concat函数,例如Concat(:pName,“%”)

我通常使用REPLACE函数,例如:REPLACE(:pName,“*”,“%”)。所以在URI中,我们可以像在搜索引擎中一样使用*

我认为每个SQL方言中都有替换函数