2017-04-13 20 views
0

私は時々、最初に数字を置き換える必要があるテーブルを持っています。どのように私は最初の3つが一致する場合、私はちょうど望む文字列全体を一致させることなくこれを行うことができますか?MySQLが文字列の場合begin

おかげ

SELECT name, REPLACE(number, '338', '08') 
from contacts 
group by name 

答えて

1

使用IFまたはCASE、代わりにREPLACEのサブオペレーションを使用(REPLACEだけではなく、最初に、複数の置換を行いますので)。

SELECT NAME, IF(number LIKE '338%', CONCAT('08', SUBSTR(number, 4)), number) 
FROM contacts 
GROUP BY name 
+0

ありがとうございます!数字4は何を表していますか? –

+0

これは、部分文字列を開始する 'number'の位置です。 – Barmar

0

LEFT()を使用してCONCATの最後に文字列を使用できます。

select concat(replace(left(number,3),'338','08'),substr(number,4)) 

しかし、電話番号はさまざまな方法で書き込むことができます。 (+ 33xxxx、(33)xxxxx、0033xxxxx、...)これはあまり簡単ではありません。

関連する問題