MySQLを使用して新しい数字でハイフンの前にすべての桁を交換する方法は?

Hoomanバーレーン:

私はと呼ばれるテーブル持っているmyTableという列がありますcol1(1または2桁)(ハイフン)(5〜10桁)(0または1文字):この列は、このフォーマットのデータを含みます。

これは一例ですので、私は、この列内のすべてのデータを交換し、4とハイフンの前にすべてのものを交換したいです:

--------------------------------
|  old values   |  New Values  |
--------------------------------
| 1-6542835    =>  4-6542835   |
| 2-46786283x  =>  4-46786283x |
| 8-478934293  =>  4-478934293 |
| 12-573789    =>  4-573789    |
| 16-5747385z  =>  4-5747385z  |
--------------------------------

私は、MySQL 5.7.19を使用しています、私はREGEXP_REPLACEは+ ...これを達成することができないように注意してくださいどのようにMySQLバージョン8で利用可能であると考えていますか?

注意:

私は尋ねた同様の質問を...しかし、それは単純化したシナリオだったことに気づいた...その質問が既に回答されているので、私はこのため、新たな質問をして、編集にそれを望んでいません。

明菜:
SELECT CONCAT( @new_prefix, SUBSTRING(old_value FROM LOCATE('-', old_value)) ) AS new_value

UPDATE sourcetable
SET fieldname = CONCAT( '4', SUBSTRING(fieldname FROM LOCATE('-', fieldname)) )
WHERE LOCATE('-', fieldname)
/* AND another conditions */

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28050&siteId=1