不同数据库中对以逗号分割的字符串筛选操作处理方案总结
一、需求描述
数据库中存在某个字段存放以逗号分割的字符串类型数据,如"x,y,z,a,b,c"
前端同样传入以逗号分割的字符串作为筛选条件,如"x,...比较好的一个方案是在数据库中手动实现按逗号分割字符串的自定义函数,然后再依次实现比较逻辑,但是在某些不支持扩展自定义函数的第三方需求下,这个方案也无法实现。...最终选取方案是使用数据库中已存在的特定函数组合实现,但缺点是对于不同数据库需要分别处理,缺乏一定的通用性。此处仅列举全包含与不包含的示例,其余情况类似,通过特定函数与and、or组合实现。...FIND_IN_SET('y', 列名) > 0
不包含:select * from table where FIND_IN_SET('x', 列名) = 0 and FIND_IN_SET('y', 列名) = 0
PostgreSQL...函数和子查询组合实现)
全包含:select * from table where 'x' IN (select REGEXP_SUBSTR(列名, '[^,]+', 1, ROWNUM) from