2015-06-03 112 views
2

当我做这个查询:MS SQL搜索文本字段错误

select charindex('batteries',content) from searchpage_v5 
where content like '%batteries%' and tableid=29 and id=72 

我使用MS SQL 2008 SP3。表格中的“内容”列是文本类型。

我得到结果“0”,而不是没有记录。这怎么可能。当然,如果列“内容”中有文本“电池”,那么charindex会返回> 0,但如果它没有它,那么查询将不会返回结果?

帮助!

+0

我对mssql并不熟悉,但是如果您在这里没有好运,您应该尝试在dba.stackexchange.com上发布问题。 – user1717828

+1

你可以做小提琴吗?它应该工作 –

+0

当你选择*而不是选择charindex ...时会发生什么? – LittleBobbyTables

回答

4

该文档不是很明确,但它说CHARINDEX不能用于text列。我的猜测是该参数隐含地截断为varchar(8000),这就是为什么你会得到奇怪的结果。如果可能,您应该将列的数据类型更改为varchar(max),因为text is deprecated

+0

啊哈!我想,当charindex返回0它不在那里,但在未来的调查中,它在那里,但在第8000个字符后!谢谢! –