java - Mysql query with In clause regex -


i have sql query this:

"select f.filterid filtename, f.id filtertext " +     "from filter f " +      "where group_id = '" + id +"' " +      "or groupids '%." + id + ".%' "; 

and want pass list of ids query make performance better. don't know whether regex works in in clause. , tried below 1 not working , not sure use in case of regex.

"select f.filterid filtename, f.id filtertext filter f " +      "where group_id in ("+stringutils.join(ids, "','")+")" +      "or groupids in ("+stringutils.join(ids, "','")+")""; 

thanks.

i recommend use query#setparameter achieve this, if using jpa can supply ids list in setparameter.

but current resolution may try below changes.

not sure if group_id column expects integer or string datatype, propose changes either of cases.

if expects string - missing starting " ' " change code below

if expects integer type - should not wrap comma separator " ' ", remove them below

"select f.filterid filtename, f.id filtertext filter f " + "where group_id in ("+stringutils.join(ids, ",")+")" + "or groupids in ("+"'"+stringutils.join(ids, "','")+"'"+")"; 

trying running query , see if desired resultset


Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -