2012-04-09 13 views
9

Quiero encontrar las primeras 4 palabras y las últimas 4 palabras después de la palabra clave particular de la base de datos. Supongamos que la palabra clave es "Account" y luego quiero encontrar las primeras 4 palabras antes de que "Account" aparezcan en una línea y aparezcan 4 palabras después de "Account" en una línea.Buscar las primeras 4 palabras y las últimas 4 palabras de la base de datos después de palabras clave particulares?

Actualmente estoy utilizando esta consulta para encontrar los primeros 20 caracteres y los últimos 20 caracteres después de una palabra clave en particular.

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%' 
+0

¿Qué error está recibiendo cuando está ejecutando la consulta? Por favor, especifique en detalle !! – NSExpression

Respuesta

1

SQL se llama * S * QL por una razón - no vas a ser capaz de hacer algo tan avanzada sin la ayuda de un lenguaje de programación intermediario --- a menos que quiere que las cosas alborotarse.

La respuesta corta es que tendrá que usar una UDF (función definida por el usuario) para dividir primero, luego analizar su cadena delimitada (en espacios '') luego puede aplicar su lógica -4/+ 4.

Aquí es el mejor artículo en la red en SQL-UDF para que pueda empezar:

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

Buena suerte!

PS - será mucho más fácil simplemente tomar su +/- 30 chr y luego hacer el análisis externamente =]. Probablemente también ahorrará más recursos del sistema.

Cuestiones relacionadas