私は時々、最初に数字を置き換える必要があるテーブルを持っています。どのように私は最初の3つが一致する場合、私はちょうど望む文字列全体を一致させることなくこれを行うことができますか?MySQLが文字列の場合begin
おかげ
SELECT name, REPLACE(number, '338', '08')
from contacts
group by name
私は時々、最初に数字を置き換える必要があるテーブルを持っています。どのように私は最初の3つが一致する場合、私はちょうど望む文字列全体を一致させることなくこれを行うことができますか?MySQLが文字列の場合begin
おかげ
SELECT name, REPLACE(number, '338', '08')
from contacts
group by name
使用IF
またはCASE
、代わりにREPLACE
のサブオペレーションを使用(REPLACE
だけではなく、最初に、複数の置換を行いますので)。
SELECT NAME, IF(number LIKE '338%', CONCAT('08', SUBSTR(number, 4)), number)
FROM contacts
GROUP BY name
LEFT()を使用してCONCATの最後に文字列を使用できます。
select concat(replace(left(number,3),'338','08'),substr(number,4))
しかし、電話番号はさまざまな方法で書き込むことができます。 (+ 33xxxx、(33)xxxxx、0033xxxxx、...)これはあまり簡単ではありません。
ありがとうございます!数字4は何を表していますか? –
これは、部分文字列を開始する 'number'の位置です。 – Barmar