我正试图在Jasper中使用'like'和一个参数。
我的查询是:
... where tb_produto.NomeProduto LIKE $P{NomeProduto} order by $P!{OrdenarPor}
当我在预览对话框中输入参数$ P {NomeProduto} = ABC的名称时,我得到了我的产品, 但是当我使用通配符时不起作用。
$ P {NomeProduto} = AB%或A%或只是%返回没有行。
答案 0 :(得分:1)
您需要使用与order by by子句中相同的语法。在您的情况下,有必要将参数“原样”(未绑定参数)视为:
...
where
tb_produto.NomeProduto LIKE '%$P!{NomeProduto}%'
order by
$P!{OrdenarPor}
有关该问题的更多详细信息:http://jasperreports.sourceforge.net/sample.reference/query/
但是当从外部(例如webform)给出参数时,你必须注意SQL注入,因为这样可以很容易地操作查询。
答案 1 :(得分:0)
如果你想搜索喜欢:.......其中empId喜欢' 822A%'然后你可以使用 concat japser参数到通配符如:其中empId喜欢' $ P!{p_empId}%'
答案 2 :(得分:0)
试试这个:
where tblName.colName LIKE "%"'$P!{paramName}'"%"