我正在尝试用Java代码编写参数化的sql查询,其中参数出现在正则表达式中。因此,在以下查询中,值11应该替换为参数。
SELECT * FROM addresses WHERE streetnumber '^11[^[:digit:]]*$'
上面的查询返回的记录的街道编号为:11A,11 B,但不是111,这就是我想要的。
但是我尝试过类似的事情:
SELECT * FROM addresses WHERE streetnumber ~ '^:streetNumber[^[:digit:]]*$'
和
SELECT * FROM addresses WHERE streetnumber ~ ('^' || :streetNumber || '[^[:digit:]]*$')
当我在intellij db控制台中运行时,它返回期望的集合,但是从Java代码中它返回空。