web-dev-qa-db-ja.com

変数文字列から最後の文字を削除します

「メール」列にいくつかの変数データが​​あります。

例えば:

_[email protected]
[email protected]
_

_.com_の後の文字を削除するにはどうすればよいですか?

Replace(email,'.com%',gmail.com)を使用しましたが、置換でワイルドカード文字を使用できません。

助言がありますか?

3
Roy
SELECT
    SUBSTRING(col, 1, CHAR_LENGTH(col) - CHAR_LENGTH( SUBSTRING_INDEX(col, '.com', -1) ) ) ;

テーブルから文字列を更新する場合は、.comの右側にあるものを切り取ります。

UPDATE 
    tableX
SET
    col = SUBSTRING(col, 1, CHAR_LENGTH(col) - CHAR_LENGTH( SUBSTRING_INDEX(col, '.com', -1) ) ) 
WHERE
    SUBSTRING_INDEX(col, '.com', -1) <> col ;
3
ypercubeᵀᴹ

Mysqlには正規表現がありますか?もしそうなら、これはおそらく正しい方向を指しています

select regexp_replace ('[email protected]', '\.com.*','.com') email from dual;

oracleで動作しますが、mysqlについては不明です。

0
ik_zelf