不同数据库中对以逗号分割的字符串筛选操作处理方案总结
一、需求描述
数据库中存在某个字段存放以逗号分割的字符串类型数据,如"x,y,z,a,b,c"
前端同样传入以逗号分割的字符串作为筛选条件,如"x,...,如"字段1|字段2",但是都不能很好的实现"不考虑具体顺序的逻辑",在遇到多个字段时,无论时like模糊匹配或者是正则匹配都会造成漏选或多选的问题。...比较好的一个方案是在数据库中手动实现按逗号分割字符串的自定义函数,然后再依次实现比较逻辑,但是在某些不支持扩展自定义函数的第三方需求下,这个方案也无法实现。...MySQL数据库实现方案(FIND_IN_SET函数)
全包含:select * from table where FIND_IN_SET('x', 列名) > 0 and FIND_IN_SET...('y', 列名) > 0
不包含:select * from table where FIND_IN_SET('x', 列名) = 0 and FIND_IN_SET('y', 列名) = 0
PostgreSQL