"text字段不能使用"="来进行精确匹配,所以我使用了 where content like '需要匹配内容'"不是很明白,text字段用于保存超过4000字符的数据,难道你匹配的数据长度超过4000字符? 那么where 条件中,"需要匹配内容'"也是超过4000字符?
可不可以把數據類型改一下啊可以用varchar數據類型
to zjcxc(邹建) 就是需要那么大的,因为是存放文章内容的 精确匹配它是为了过滤完全相同的内容..
而且like的匹配项也不支持超过8000的,所以真要用这种处理,应该去程序中处理.--你可以用下面的存储过程测试,如果调用存储过程时,参数指定的字符串超过8000,则前一个查询是查询不出数据的.create proc p @a text as select a=@a into # select datalength(a) from # select * from # where a like @a select * from # where a like substring(@a,1,7999)+'%' go declare @s varchar(8000) set @s=replicate('a',8000) exec p --select datalength( 'b后面补8000个字符' --) godrop proc p
就是需要那么大的,因为是存放文章内容的
精确匹配它是为了过滤完全相同的内容..
@a text
as
select a=@a into #
select datalength(a) from #
select * from # where a like @a
select * from # where a like substring(@a,1,7999)+'%'
go
declare @s varchar(8000)
set @s=replicate('a',8000)
exec p
--select datalength(
'b后面补8000个字符'
--)
godrop proc p