在特定关键字后找到数据库中的前4个单词和最后4个单词?

时间:2012-04-09 06:13:03

标签: mysql

我想在数据库中的特定关键字之后找到前4个单词和最后4个单词。假设关键字为"Account",那么我想在"Account"出现在一行之前找到前4个单词,并在"Account"出现在一行之后找到4个单词。

目前我正在使用此查询查找特定关键字后的前20个字符和最后20个字符。

SELECT 
SUBSTRING(line.WD, LOCATE('%Account%', line.WD) - 20, 20) AS First20Char, 
SUBSTRING(line.WD, LOCATE('%Account%', line.WD)+LENGTH('a'), 20) AS Last20Char 
FROM `line` WHERE line.WD LIKE '%Account%'

1 个答案:

答案 0 :(得分:1)

SQL被称为* S * QL是有原因的 - 如果没有中间编程语言的帮助,你将无法做这些高级的事情 - 除非你想要的东西变得凌乱。

简短的回答是你将不得不使用UDF(用户定义的函数)来首先拆分,然后解析你的分隔字符串(在空格'')然后你可以应用你的-4 / + 4逻辑。

以下是SQL-UDF网上最好的文章,以帮助您入门:

http://www.codeproject.com/Articles/7938/SQL-User-Defined-Function-to-Parse-a-Delimited-Str

祝你好运!

PS - 只需抓住你的+/- 30 chr,然后在外部进行解析,这样会更容易=]。它也可能会节省更多的系统资源。