Mysql 写入条件查询时出错(三元)

Mysql 写入条件查询时出错(三元),mysql,jasper-reports,Mysql,Jasper Reports,我有两个参数$p{param1}和$p{param2}。$P{param1}是在执行查询时进行提示的参数。$P{param2}包含一个条件查询,当$P{param1}为空时,显示所有记录,否则选择与参数匹配的id 下面是我对$p{param2}的条件查询: $P{param1}.equals(" ") ? "SELECT * FROM tablerecords" : $P{param2}.equals($P{param1}) 问题是,当我尝试执行查询并请求参数1时,例如我输入2(即id),查询

我有两个参数$p{param1}和$p{param2}。$P{param1}是在执行查询时进行提示的参数。$P{param2}包含一个条件查询,当$P{param1}为空时,显示所有记录,否则选择与参数匹配的id

下面是我对$p{param2}的条件查询:

$P{param1}.equals(" ") ? "SELECT * FROM tablerecords" : $P{param2}.equals($P{param1})
问题是,当我尝试执行查询并请求参数1时,例如我输入2(即id),查询显示“文档没有页面”,当我尝试输入1,2,3时,查询返回所有记录

顺便说一下,这是我在主报表中的sql查询:

SELECT
c.id,
p.lastname,
p.firstname
FROM person_tbl as p,code_tbl as c
WHERE $P!{param2}
AND p.id=c.id
ORDER BY 1;

$p{param1}值是您想要实现的id

?就我所见,“,”不等于null,您应该像($P{param1}==null | |$P{param1}.toString().trim().lengthI也尝试过这个条件,($P{param1}==null | |$P{param1}.toString().trim()).length条件查询不是问题,您缺少一些东西,显示您的jrxml我只是在下面粘贴jrxml。我对它做了一些最小的更改。这些是实际字段。谢谢@Arasubtw,您可以在问题中添加jrxml