2011-04-13 63 views
1

我试图从我的数据库中为特定术语选择付款计划。问题是我的pay_plan字段是多值的,并且设置如下:UTAD * 00000 * 2010SP。我想匹配起来,像这样的具体条款:将多值字段的部分匹配到我的setString函数

stmt = conn.prepareStatement("SELECT person FROM schema.payments WHERE pay_plan = ?"); 

stmt.setString(1, term); 

反正是有只有最后的*后匹配字符,或者是有任何其他方式去了解呢?

+0

您使用的数据库是? – Chandu 2011-04-13 16:42:37

+0

DBMS请问什么? – gbn 2011-04-13 16:42:48

+0

如果我对你有所了解,那就是Oracle 11g。 – Dan 2011-04-13 16:45:18

回答

0
WHERE 
    pay_plan LIKE '%*%*' + @MySearchValue; 

这意味着你只有最后一位相匹配,并假定你总是有abc*123*wanted

注:指数会因为领先%的被忽略,所以你不得不接受性能差的未归一化数据的后果

+0

@MySearchValue是什么意思?我正在尝试在哪里pay_plan LIKE'%*%*'+? – Dan 2011-04-13 16:57:49

+0

您可能需要包装?在引用 – gbn 2011-04-13 17:06:01

+0

有点棘手的所有引号,但得到它的工作....谢谢! – Dan 2011-04-13 18:38:59