2011-04-13 83 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