sql server中查询一个字段中的多个id用','隔开的
比如查询包含1的他会把11,111的都查出来,怎么解决这种现象
只查询1或者包含1的,而不是11,111,这种
只查询1或者包含1的,而不是11,111 这个说法有点矛盾啊?
只查询1的是等于 包含1的是like ,而不是11,111又是什么意思
模糊查询是通配的,这个好像没办法,除非你知道是哪个字符,可以指定字符个数。
select * from StorehouseInfo where charindex(',1,',','+ProductionLineIds+',')>0
直接用计算方式匹配,数字前后加逗号,字段值前后加逗号,当计算后的值存在字段加逗号中,就符合条件
SELECT * FROM storehouseinfo WHERE FIND_IN_SET('1',productionlineids);
试试这个,我理解你的目的是筛选逗号分割后的数组中只有1或者包含1,而11和111不算,打个比方,1,2,3是符合的,11,2,3是不符合的,1,2,11也是复合的,对吗?
弄个存储过程来切割字符串,返回其结果,然后你再处理可以吗
https://www.jb51.cc/mssql/530307.html
最底层的问题就是没分表,一开始偷懒,用逗号分隔存储,,还是早点分表吧,如果还可以的话;
当然方法还是有的,我就先说一个,但是我觉得它不是一个好方法
1.查询like 1 的数据到内存(如查询100条)
2.程序中过滤手动分页(如果未到分页数量,继续往下查询)
or
看看有没有什么规律可行,如: like 1 || like ,1 && not line ,1% ... 我这里随便写的,大致就是这思路,看看有没有办法通过多次的|| 以及 && 查询出来