本帖最后由 numenofchina 于 2009-06-13 19:21:01 编辑

解决方案 »

  1.   

    你把SQL输出来看看是什么样子!!!
      

  2.   

    调试 看看sql 在把sql拷贝在查询分析器执行哈!
      

  3.   

    SELECT users.userid, users.username, userextend.realname, userextend.phone, 
          userextend.mobile, users.email
    FROM users INNER JOIN
          userextend ON users.userid = userextend.userid
    WHERE (userextend.mobile LIKE '%8282%')用查询分析器一点问题都没有!
      

  4.   

    附上我用的存储过程,用于降序搜索CREATE PROCEDURE Pr_GetSearchDataPageByIdFieldDesc
    (
       @searchfields varchar(1000),
       @tablename varchar(1000),
       @condition varchar(1000),
       @orderfields varchar(100),
       @currentpage int,
       @pagesize int,
       @pagefield varchar(100)
    )
     ASDECLARE @sqlString AS varchar(5000)
    DECLARE @topRecordCount AS int
    DECLARE @topRecords AS varchar(5000)
    DECLARE @minid AS varchar(5000)IF @currentpage=1
       BEGIN
          SET @sqlString=
          (
             'SELECT TOP '+STR(@pagesize)+' '+@searchfields+' FROM '+@tablename+' WHERE '+@condition+' ORDER BY '+@orderfields
          )
       END
    ELSE
        BEGIN
          SET @topRecordCount=(@currentpage-1)*@pagesize
          SET @topRecords=
          (
             'SELECT TOP '+STR(@topRecordCount)+' '+@pagefield+' FROM '+@tablename+' WHERE '+@condition+' ORDER BY '+@orderfields
          )
          SET @minid=
          (
             'SELECT MIN('+@pagefield+') FROM ('+@topRecords+') as tblTmp'
          )
          SET @sqlString=
          (
             'SELECT TOP '+STR(@pagesize)+' '+@searchfields+' FROM '+@tablename+' WHERE ('+@pagefield+' <  ('+@minid+')) AND '+@condition+'  ORDER BY '+@orderfields         
          )
       ENDEXEC(@sqlString)
    GO
      

  5.   

    我试了一下我这样能行呀!数字也能行的!
    DECLARE @ID VARCHAR(10)SET @ID='01'EXEC('SELECT * FROM C WHERE 1=1 AND B LIKE ''%'+@ID+'%''' )
      

  6.   

    是啊,不知道怎么回事? 把LIKE换成等号,输入数字的话就有结果,说明sql语句和存储过程都没问题,不过这样就没意义了不是!
      

  7.   

    SQL='SELECT TOP '+STR(@pagesize)+' '+@searchfields+' FROM '+@tablename+' WHERE 1=1 '+@condition+' ORDER BY '+@orderfields
    这样试试看,你要连接AND !!!就加个1=1
      

  8.   

    http://topic.csdn.net/u/20090317/09/27FE698D-61A4-458A-B8B4-E2453651C736.html
    参考下!!!!对这个还不太懂!!帮不了忙
      

  9.   

    在执行EXEC(@sqlString)
    前答打印@sqlString看看,应该是语句问题。
      

  10.   

    楼上的大哥,要怎么打印@sqlString,不会要我改程序吧!有没有方便的办法?