2012-03-15 12 views
1

中間テキスト列から単語35から始まる20語の部分文字列を返すMySql文が必要です。 このクエリはどのように見えるでしょうか?MySql中文字から部分文字列を検索する方法は?

+0

多くの行がある場合は、SQLで行うことはお勧めしません。任意のプログラム言語を使用してトリミングしてください。 –

+0

1から5メガバイトまでのmediumtext列には多くのデータ/テキストが含まれていますが、テキストをフェッチする行は1つだけです。パフォーマンスに関しては、プログラミング言語を使用する方が速いでしょうか? (この場合Java) – user1152442

+0

私は多くのことに依存しています - あなたのデータが急速に成長している場合、サーバーのCPUパワー、RAM、クライアント数... –

答えて

1

@RomanNewazaに同意する傾向がありますが、これが必要です。これは、スペースを想定した最初の55ワードを取得します

安全な単語の区切りである -

SELECT SUBSTRING_INDEX(field, ' ', 55) FROM tbl; 

そして、これは同じ仮定に基づいて、最後の20ワードを取得します - だから、入れ

SELECT SUBSTRING_INDEX(field, ' ', -20) FROM tbl; 

これらの2つが一緒になって -

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ' ', 55), ' ', -20) FROM tbl; 
+0

ありがとうございました。 – user1152442