数据库中有个用户编号序列字段UserIdList,nvarchar型,如"12,45,79",
查询是不是包含某个用户可以用 where ','+UserIdList+',' like '%,'+userid+',%'
有没有更佳性能的方法?
谢谢!
这个你可以在数据库里面做一个简单的测试就可以了!
新建查询,并把上面两条sql复制到 其中
可能通过菜单中的"查询"---“显示估计的查询计划”比较两条sql
或 "查询"---“包括实际的执行计划”进行sql语句的性能评估 (这里要分开两次执行才行)
具体的看http://www.cnblogs.com/yinwanglive/archive/2009/04/13/1434826.html
不过有点可以肯定的,like '%的操作会锁定记录,有可能出现死锁的情况,所以尽可能的不要在大量文本比较的时候用like,像这个地方我建议还是用in比较好!不需要使用like,而且你这个地方用like,还可能出现错误,就是当记录里11,1,11111这样的时候,如果你like 11或1会是怎么样的结果呢!?
感觉在数据库设计的就存在问题,一般不推荐使用双%号查询