列フィールドの問題を解決するために手が必要です。たとえば、これら2つの異なる文字列の「パターン」の間にある文字列を抽出する必要があります。
[... string] contract = 1234567890123350566076070666発行= [string ...]
「contract =」と「issued =」の間の文字列を抽出したい
現在、私は使用しています
SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table
問題は、間にあるこの文字列が常に40文字であるとは限らないため、固定長ではないため、その前後に来るデータにあるということです。揮発性のデータです。
どうやってそれを処理できるか知っていますか?
substring_index()
を2回使用するだけです。
SELECT substring_index(substring_index(licence_key, 'contract=', -1),
'issued=', 1)
FROM table;
この文字列が一致しない場合、合計結果を提供します。
置き換えたい場合は、次のように使用できます。
UPDATE questions set question= REPLACE(question, '<xml></xml>', '') WHERE question like '%<xml>%';
UPDATE questions set question= REPLACE(question, substring_index(substring_index(question, '<xml>', -1), '</xml>', 1), '') WHERE question like '%<xml>%';