如果我有一个查询返回数据库中可搜索列中包含“新闻”的所有匹配条目(即SELECT * FROM table WHERE column LIKE %news%),并且某一特定行有一个条目以“在最近的世界新闻中,索马里被入侵...”开头,我可以返回一个特定的“块”的SQL条目吗?有点像预告片,如果你愿意的话。
发布于 2008-11-03 21:28:57
select substring(column,
CHARINDEX ('news',lower(column))-10,
20)
FROM table
WHERE column LIKE %news%基本上,子串是从单词“news”之前的10个字符开始,一直持续到20个字符。
编辑:您需要确保“news”不在前10个字符中,并相应地调整开始位置。
发布于 2008-11-03 21:27:44
您可以在选择部件中使用子字符串函数。类似于:
SELECT SUBSTRING(column, 1,20) FROM table WHERE column LIKE %news%这将返回column列的前20个字符
发布于 2008-11-03 21:29:57
我遇到了同样的问题,我最终将整个字段加载到C#中,然后在文本中重新搜索搜索字符串,然后选择两侧的x个字符。
这将适用于LIKE,但不适用于使用词尾变化形式的全文查询,因为当您搜索“女人”时,这可能会匹配“女人”。
https://stackoverflow.com/questions/260010
复制相似问题