ホームページ >データベース >mysql チュートリアル >SQL で 2 つの区切り文字の間の部分文字列を正しく抽出するにはどうすればよいですか?
SQL を使用した既知の区切り記号間の文字列の取得
データベース シナリオでは、多くの場合、次の条件に基づいて、より大きな文字列から特定の部分文字列を抽出する必要があります。既知の区切り文字。たとえば、指定された 2 つの文字列間のテキストの一部を分離する必要がある場合があります。
一般的なアプローチの 1 つは、SUBSTRING 関数を利用することです。ただし、この関数を使用するときによくあるエラーは、部分文字列の長さの計算に最初の既知の文字列のインデックスが含まれていることです。
2 つの区切り文字の間にある部分文字列を正しく取得するには、次の計算が必要です:
CHARINDEX(second_delimiter, @Text) - CHARINDEX(first_delimiter, @Text) + Length(second_delimiter)
この式により、取得された部分文字列が最初の区切り文字で始まり 2 番目の区切り文字で終わることが保証されます。
の場合たとえば、次のクエリについて考えてみましょう。
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text), CHARINDEX('immediately', @Text) - CHARINDEX('the dog', @Text) + LEN('immediately'))
このクエリでは、@Text は入力文字列を表します。既知の文字列「the Dog」と「immediately」を指定することにより、クエリは「犬は非常に悪質だったので、すぐに厳しい罰が必要でした。」という部分文字列を正確に取得します。
部分文字列の長さの計算を修正することで、効果的に次のことが可能になります。 SQL を使用して、大きな文字列内のテキストの特定の部分を抽出します。
以上がSQL で 2 つの区切り文字の間の部分文字列を正しく抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。