开发者

Matching part of a multivalued field to my setString function

开发者 https://www.devze.com 2023-02-24 04:38 出处:网络
I am trying to select payment plans for a specific t开发者_如何学编程erm from my database.The problem is that my pay_plan field is multivalued, and is set up like this: UTAD*00000*2010SP.I want to mat

I am trying to select payment plans for a specific t开发者_如何学编程erm from my database. The problem is that my pay_plan field is multivalued, and is set up like this: UTAD*00000*2010SP. I want to match up the specific terms like so:

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

stmt.setString(1, term);

Is there anyway to only match the characters after the final *, or is there any other way to go about this?


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

This means you'll match only the last bit and assume you always have abc*123*wanted

Note: an index will be ignored because of the leading % so you'll have to accept poor performance as a consequence of un-normalised data


Try last index of * and then do a substring in the query.

0

精彩评论

暂无评论...
验证码 换一张
取 消