Oracle数据库某个字段的值为逗号分隔的多个值组成的字符串,以一个多选的下拉框进行查询...

某个字段的值为逗号分隔的多个值组成的字符串,现在需要通过一个可以多选的下拉框进行条件查询。

首先将该下拉框的值在后台获取后封装进一个String数组中,如;

params.put("systemIdArr", request.getParameterValues("systemId"));

然后在mybatis的xml文件中编写对应的SQL语句进行查询:


     and 
     
           ','||a.main_system_id||',' like '%,' || #{systemIdArr} || ',%'
     

 

该语句在运行时被解析成如下格式(假设前端多选下拉框同时选择了三个参数进行查询):

and ( ','||a.main_system_id||',' like '%,' || ? || ',%' or ','||a.main_system_id||',' like '%,' || ? || ',%' or ','||a.main_system_id||',' like '%,' || ? || ',%' )

 

更直白一点描述,要查找所有main_system_id的值包含a或者b或者c的所有记录。

table_1

id     main_system_id

1      a,b,c

2       b

3       b,c

4       a,c

 

转载于:https://my.oschina.net/jwcheng/blog/860148

你可能感兴趣的:(Oracle数据库某个字段的值为逗号分隔的多个值组成的字符串,以一个多选的下拉框进行查询...)