特定の条件でレコードを更新したいとします。レコードを更新中にsqlのreplace関数で文字列関数を使用することができます
例えば、私はAddressAddress1という列を持っています.Address1にはメールアドレスとアドレスが入っています。
サンプルデータ:
[email protected],Rourkela
[email protected] 2nd street,7 hills
2nd street, [email protected]
私はResidenceAddress1からの電子メールをこのように発見しています:
select (concat(trim(substring_index(substring_index(Residence_Address1, '@', '1'), ' ', -1)),'','@gmail.com') as mail,Residence_Address1
from mytable
where Residence_Address1 like '%gmail%' and Email_Personal1=""
私はこのようにそれを更新するとき:
update mytable
set email_Personal1=concat(trim(substring_index(substring_index(Residence_Address1, '@', '1'), ' ', -1)), '','@gmail.com') ,
Residence_Address1=replace(residence_address1,"'concat(trim(substring_index(substring_index(Residence_Address1, '@', '1'), ' ', -1)), '','@gmail.com')'",'')
where Residence_Address1 like '%gmail%' and Email_Personal1=""
をこのように、それが更新されますemail_personal1ではなく、その行のgmailのid値ではなく、emptyの値で置き換えられたresidence_address1を更新しませんでした。私はここで間違っていますか?
おかげおそらくあなたは、このような何かを意図しています。しかし、それは私に構文エラーを与える。 replace(fieldname、 'string1'、 'string2')であるreplace(fieldname、 '文字列を置き換える必要があります'、 'これで置き換え')です。次に、私はconcatで始まる全体の2番目の部分を一重引用符で囲む必要がありますか? –
置き換えの2番目の部分で一重引用符を設定すると、非常に複雑に見えます。だから私は二重引用符を追加しました。 –
@iks_in。 。 。そのように二重引用符を使用することはできません。 –