固定されていない文字列を置き換えるには、置き換える文字列の区切り文字を使用する必要があります。次の例では、区切り文字はSTART
です。 およびEND
、だからあなたはあなたが探しているものとそれらを交換する必要があります。区切り文字を置き換えた場合と置き換えない場合の両方のオプションを含めました。
テーブルt
を想定したサンプルデータ 列がcol
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
これは、col
からの前の出力を作成するクエリです。 桁。もちろん、必要なクエリの部分のみを使用してください(区切り文字の置換の有無にかかわらず)。
SELECT col,
INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'') with_delimiters_replaced,
INSERT(col,
LOCATE(@start, col) + CHAR_LENGTH(@start),
LOCATE(@end, col) - LOCATE(@start, col) - CHAR_LENGTH(@start),
'') without_delimiters_replaced
FROM t, (SELECT @start := 'START', @end := 'END') init
これは、START
の両方で機能します およびEND
入力テキストに文字列が含まれています。
実際にデータを更新するには、UPDATE
を使用します コマンド(実際に必要なバージョンのクエリを使用します。この場合は、区切り文字が置き換えられています):
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
特定のケースでは、START
を置き換えます と:
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
およびEND
と:
.js"></script>