[email protected]
のようなメールがあります。メールアドレスの一部を削除します
私は@
の後と.
の前にすべてを選択したいと考えています。
結果はjoebloggs
である必要があります。ここで
[email protected]
のようなメールがあります。メールアドレスの一部を削除します
私は@
の後と.
の前にすべてを選択したいと考えています。
結果はjoebloggs
である必要があります。ここで
単純な正規表現パターンは、仕事をする必要があります。
SELECT regexp_matches('[email protected]', '@([^.]+)\.');
編集:サブドメインをサポートするために固定。私はあなたが最初の点の前に部品を手に入れたいと思っています。
は'[email protected]( ストリングを選択ストリングとINSTRを使用
はsubstring
とposition
を使用してソリューションです:
substring(col from (position('@' in col)+1)
for (
position('.' in substring(col from (position('@' in col)+1))) - 1
)
)
@hvd私の更新された答えを確認してください。正規表現がここに行く方法である理由は明らかです。 –
あなたの更新された回答は、合理的に期待できるほどの機能性を備えています。 'for(char_length(col) - position( '@' in col))'を取り除くことによって、単純化することができます。 – hvd
ソリューション 'INSTR('[email protected]'、 '@')+ 1、INSTR('[email protected] '、'。 ') - (instr(' [email protected] '、' @ ')+1)) FROM dual;
これは奇妙な考えですが、アドレス全体を常に必要としない場合は、アドレスのローカル部分とドメイン部分を別々に保存するのは簡単ではありませんか?私は1つのフィールド 'email_local'と他の 'email_domain'と呼ぶだろう – x13