8

データベースから特定のキーワードの後の最初の 4 単語と最後の 4 単語を検索したい。キーワードが、行に表示される"Account"前の最初の 4 単語と、行に表示された後の 4 単語を検索したいとします。"Account""Account"

現在、特定のキーワードの後の最初の 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%'
4

1 に答える 1

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 を取得して、外部で解析を行う方がはるかに簡単です =]。おそらく、システム リソースも節約できます。

于 2012-04-09T06:32:52.330 に答える