2012-04-09 15 views
9

データベースから特定のキーワードの後ろの最初の4語と最後の4語を検索したい。キーワードが"Account"であるとすると、"Account"が1行に表示され、"Account"の後に4ワードが1行で表示される前に最初の4ワードを検索したいとします。最初に特定のキーワードの後に​​4ワードと最後の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%' 
+0

クエリを実行しているときにどのようなエラーが発生していますか?詳細を指定してください! – NSExpression

答えて

1

SQLを理由QL * * Sと呼ばれている - あなたは物事をしない限り、あなたは---仲介プログラミング言語の助けを借りずに、この先進的な何かを行うことができるようにするつもりされていません厄介になる。

最初の分割にUDF(ユーザー定義関数)を使用し、区切り文字列をスペースで区切って解析し、次に-4/+ 4ロジックを適用する必要があるということです。

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

幸運:ここ

は、SQL-のUDFのネット上で最高の記事あなたが始めるためにあります!

PS - ちょうど+/- 30 chrをつかみ、次に=を使って外部的に解析するのはずっと簡単です。おそらく、より多くのシステムリソースを節約するでしょう。

関連する問題