如果我有一个查询来返回数据库中所有匹配的条目,这些条目在可搜索列中有“新闻”(即SELECT * FROM table WHERE column LIKE %news%
),并且一个特定行的条目以“最近的世界新闻,索马里”开头被...入侵“,我可以返回SQL条目的特定”块“吗?有点像预告片,如果你愿意的话。
答案 0 :(得分:7)
select substring(column,
CHARINDEX ('news',lower(column))-10,
20)
FROM table
WHERE column LIKE %news%
基本上是在“新闻”这个词出现之前10个字符开始的字符串,并且持续20个字符。
编辑:您需要确保“新闻”不在前10个字符中并相应地调整起始位置。
答案 1 :(得分:2)
您可以在SELECT部分中使用子字符串函数。类似的东西:
SELECT SUBSTRING(column, 1,20) FROM table WHERE column LIKE %news%
这将返回列列
中的前20个字符答案 2 :(得分:1)
我遇到了同样的问题,我最终将整个字段加载到C#中,然后在文本中重新搜索搜索字符串,然后选择x字符。
这适用于LIKE,但不适用于使用FORMS OF INFLECTION的全文查询,因为当您搜索“女人”时,这可能与“女性”匹配。
答案 3 :(得分:0)
如果您使用的是MSSQL,则可以执行各种类似VB的子字符串函数作为查询的一部分。