0

だから私の反応はパターンです..「おめでとう!あなたは*でパナソニックサウンドシステムを獲得しました。私たちのコールセンターはあなたに連絡します* **." 必要なのは、賞品 (この場合は Panasonic Sound System) のみを出力として選択することです。各景品のキャラクターは異なります。他の人は多くの文字を持ち、10文字しかありません. 先頭の「おめでとう! You have win a 」と末尾の「」の両方を削除する select ステートメントを実行する必要があります。** . 当社のコール センターは* ***でご連絡いたしますので、賞品をお返しします。テーブル エントリと呼びましょう。このテキストを含むフィールドを応答と呼びます。 SELECT SUBSTR(response,32) from entries; and I remove the leading characters before the prize.

これを実行すると、「Panasonic Sound System in the * . Our call center will contact you on * *** .」と表示されます。

LEADING の文字長は 32 で、TRAILING は 94 です。賞金は一定ではありません。

4

2 に答える 2

0

SUBSTRING_INDEXは次の場合に役立ちます。

select 
substring_index(
substring_index(
"Congratulations! You have won a Panasonic Sound System in the *. Our call centre will contact you on ***."," a ",-1)," in the ",1);
于 2012-08-23T09:32:43.693 に答える
0

末尾と先頭の文字数が常に一定であると確信している場合は、substr の使用例を利用します。SUBSTR(str,pos,len).

len元の文字列の長さから、先頭の不要な文字と末尾の不要な文字を差し引くことで決定できます。

set @test_string = "Congratulations! You have won a Panasonic Sound System in the ************************. Our call centre will contact you on *************************";
set @leading = 32;
set @trailing = 94;
select substr(@test_string, @leading, length(@test_string) - @leading - @trailing);

例えば:

mysql> select substr(@test_string, @trailing_chars, length(@test_string) - @leading_chars - @trailing_chars);
+------------------------------------------------------------------------------------------------+
| substr(@test_string, @trailing_chars, length(@test_string) - @leading_chars - @trailing_chars) |
+------------------------------------------------------------------------------------------------+
|  Panasonic Sound System                                                                        |
+------------------------------------------------------------------------------------------------+
于 2012-08-23T09:53:51.973 に答える