我想从数据库中找到特定关键字后的前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%'
最佳答案
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,然后通过=]从外部进行解析会容易得多。它也可能会节省更多的系统资源。
关于mysql - 在特定关键字之后查找数据库中的前4个单词和后4个单词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10069616/