要求如下:查询相似名单:按姓名,学校,固话,手机,备用手机,家庭住址 任何两项以上都相同
              就可以查询到相似名单如果直接 or 的话好像很笨,如果有20个条件的话不要or死啊 !!!

解决方案 »

  1.   

    不用or也不用like。那你把所有查出来放在一个table对象里面然后用一个for吧。。
      

  2.   


    数据不少 上百万  这个for 吃得消吗?
      

  3.   

    你可以做一点限制,譬如用户查询时只允许提供6种条件中的任何2个条件.
    然后传给一个存储过程.
    存储过程设6个参数.每个对应一个条件,如果用户没有提供某个条件的值,那就默认为NULL或int 0
    在存储中进行6次逻辑判断:declare mysql nvarchar(200)
    declare num tinyint
    set num=0
    set mysql=N'select * from table where 1=1' 
    if  @Fa<>null
       begin
       set  mysql=mysql+'and  Fa=@Fa'
       set num=num+1
       end
    if @Fb<>null
       begin
       ....
       end
    //略
    if num<>2 return
    SP_execute mysql (@fa varchar(50),@fb varchar(50)......,@fg varchar(50)),@fa,@fb,@fc,@fd,@fe,@fg
      

  4.   

    感谢答复,可是我的情况是这样的,一个页面呈现一个用户的信息,
    我需要查库里面和此用户信息相似,查询条件是不固定的,
    条件A+条件B 相似  显示出来
    条件A+条件C 相似  也显示出来
    .......
      

  5.   

    Select * from yourtable where Field1+Field2+Field3+Field4+.... like @inputString@inputString="%"+变量+"%"