包含id列上所有内容的sql参数

yeotifhr  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(285)

我只是看看下面的查询

select * from tablename
where id like '%%';

这样它就可以处理包含所有数据的参数,或者像下面这样的过滤数据

select * from tablename
where id like '%1%';

这对于我使用的大多数参数来说都是好的,但是对于一个id来说这似乎是错误的,因为它将返回所有id中包含1的数据,而我不需要这些数据
为了避免这个问题,我只能在给定id的情况下附加where子句,但这似乎是个麻烦
例如,是否可以使用不同类型的where子句,以便在where equals子句中使用通配符,而不是在where like子句中使用通配符

select * from tablename
where id = '*';

这样就可以使用同一个查询来返回所有或已过滤的数据?为all传递参数'*',或为id 1传递参数'1'
(我不确定这对本例是否重要,但我在本例中使用的是postgresql9.6.12)

eaf3rand

eaf3rand1#

这通常表现为:

where (id = :id or :id is null)
``` `null` 是表示所有行的“magic”值。

相关问题