5

こんにちは、新しいメール サーバーに移行しようとしているので、次のようにテーブルを返すように Mysql スクリプトを作成し、結果を次のように CSV ファイルの SQL ステートメントとしてエクスポートします。

`select email,clear,email AS domain from postfix_users `

ドメイン名の前に@と@記号の前にある文字を部分文字列にしたいのですが、何かアイデアがあれば助かります

mysql> select email,clear,email AS domain from postfix_users ;

+---------------------------+--------+---------------------------+
| email                     | clear  | domain                    |
+---------------------------+--------+---------------------------+
| user@domain.tld           | passw  | user@domain.tld           |
+---------------------------+--------+---------------------------+
4

1 に答える 1

14

LOCATE を使用して @ の位置を見つけることができます。

 LOCATE('@',email)

したがって、ドメインを見つけるには:

SELECT CASE 
    WHEN LOCATE('@',email) = 0 THEN ''
    ELSE SUBSTRING(email,LOCATE('@',email)+1)
    END as Domain
FROM YourTable
于 2009-06-14T17:00:24.070 に答える