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%')用查询分析器一点问题都没有!
附上我用的存储过程,用于降序搜索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
我试了一下我这样能行呀!数字也能行的! DECLARE @ID VARCHAR(10)SET @ID='01'EXEC('SELECT * FROM C WHERE 1=1 AND B LIKE ''%'+@ID+'%''' )
userextend.mobile, users.email
FROM users INNER JOIN
userextend ON users.userid = userextend.userid
WHERE (userextend.mobile LIKE '%8282%')用查询分析器一点问题都没有!
(
@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
DECLARE @ID VARCHAR(10)SET @ID='01'EXEC('SELECT * FROM C WHERE 1=1 AND B LIKE ''%'+@ID+'%''' )
这样试试看,你要连接AND !!!就加个1=1
参考下!!!!对这个还不太懂!!帮不了忙
前答打印@sqlString看看,应该是语句问题。