0

正しくない電話番号のテーブルがあります。
06xxxxxxxxのような番号を持つものもあれば、
06-xxxxxxxxのような番号を持つものもあります
。+316xxxxxxxxのようにします。

私のテーブル:
ユーザーID、電話番号、国

私の現在の(機能していないクエリ)クエリ:
UPDATE account_number am
SET am.phonenumber = REPLACE(am.phonenumber、 '06'、'+316');

誰かが+31611061111のような番号を持っている場合、それも置き換えられて+ 31611 + 3161111になるため、上記は機能しません。

私の質問が複雑にならないことを願っています。
前もって感謝します...

4

3 に答える 3

2

これを試して

まず、 06-で始まる番号を更新します。

UPDATE account_number am 
SET am.phonenumber = CONCAT('+316', SUBSTRING(am.phonenumber, 4)) 
WHERE am.phonenumber LIKE '06-%';

次に、 06から始まるものを更新します。ここでは実行順序が重要です。

UPDATE account_number am 
SET am.phonenumber = CONCAT('+316', SUBSTRING(am.phonenumber, 3)) 
WHERE am.phonenumber LIKE '06%';
于 2012-12-24T14:00:03.473 に答える
1

次のようなものを試してください

UPDATE account_number am
SET am.phonenumber = '+316' + Substring(am.phonenumber,3,Length(am.phonenumber) - 2)
where am.phonnumber like '06%'
于 2012-12-24T13:57:59.590 に答える
0

句を使用WHEREして、06で始まる番号に一致させることができます。それを達成するには、LIKEを使用します

于 2012-12-24T13:56:52.353 に答える