是否可以从SQL查询中获取匹配的字符串?

时间:2008-11-03 21:22:59

标签: sql

如果我有一个查询来返回数据库中所有匹配的条目,这些条目在可搜索列中有“新闻”(即SELECT * FROM table WHERE column LIKE %news%),并且一个特定行的条目以“最近的世界新闻,索马里”开头被...入侵“,我可以返回SQL条目的特定”块“吗?有点像预告片,如果你愿意的话。

4 个答案:

答案 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的子字符串函数作为查询的一部分。