我目前需要在我的00000012345
搜索查询中匹配12345
和DB
。
我目前正在使用以下查询:
SELECT *
FROM BPP.CHECK_REGISTER
WHERE CHECK_NO like CONCAT('%',:checkNum)
用于搜索,但是在这里%
可以表示0
以外的任何字符,因此我将查询替换为以下内容:
SELECT *
FROM BPP.CHECK_REGISTER
WHERE REGEXP_LIKE (CHECK_NO,'^(0*12345)$')
但是在此查询中,我不想提及12345
,而是将其作为用户输入的参数(例如第一个查询:checkNum
我如何用用户输入REGEXP_LIKE
改写仅包含2个参数的:checkNum
条件,因为oracle db最多允许2个参数。 (另一个问题)
答案 0 :(得分:1)
您可以串联参数:
SELECT *
FROM BPP.CHECK_REGISTER
WHERE REGEXP_LIKE (CHECK_NO,'^(0*'||:checkNum||')$');
或者在将正则表达式部分传递给查询之前,将其添加到用户输入的值(在您的应用程序代码中)。