0
需要幫助,因爲我很難設置查詢更新。MYSQL用char的條件替換字符串的一部分是數字
我想將10x
的出現次數替換爲20x
,其中x
必須是數字數字。此外,數字號碼可以出現在任何位置。和數字出現的前兩個數字位必須是10
如:tableA
- 在現場colA
有如下:查詢更新後
TOK101s
102YUZ
TAIP103v
ECC10
ECC10a
SCC_103
TD-102b
ZA1104z
的結果應該是:
TOK201s
202YUZ
TAIP203v
ECC10
ECC10a
SCC_203
TD-202b
ZA1104z
ECC10
和ECC10a
不應該更新,因爲10
之後的第3個字符不是數字值。
ZA1104z
不應更新,因爲數字字符串1104不以10
開頭。
這是一個正則表達式的工作。不幸的是,MySQL沒有內置的正則表達式替換函數,但是您可以搜索一個可以執行它的UDF。 – Barmar
我可以做一個正常的替換(colA,'10','20'),但用正則表達式過濾嗎?這是可行的嗎?例如:update tableA set colA = replace(colA,'10','20')colA REGEXP'something'? –
您可以使用'WHERE colA REGEXP'(^ | [^ 0-9])10 [0-9]''進行過濾以匹配以「10」開頭的3個數字。但是如果字符串看起來像「ECC101ABC10」呢?這將取代'10'子串。 – Barmar