Ekstrak nama domain dari email

Asalnya soalan ini ditanyakan di forum komuniti http://php.net.my . Bagaimana mahu mengekstrak nama domain dari email yang tersimpan didalam pangkalan data(database) MySQL.

Ini merupakan contoh jadual (table) di dalam pangkalan data.

CREATE TABLE `emails` (
`id` INT NOT NULL AUTO_INCREMENT ,
`email` TEXT NOT NULL ,
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM;

Ini pula contoh data yang ada di dalam meja.

INSERT INTO `emails` (
`id` ,
`email` 
)
VALUES (
NULL , 'foo@foobar.com'
), (
NULL , 'fii@fii.com.my'
);

Cara untuk menyelesaikan permasalahan ini ialah dengan menggunakan sintak SQL seperti di bawah.

SELECT email,
CONCAT('www.',
SUBSTRING_INDEX(email,'@',-1)
) AS domain
FROM emails;

Penggunaan CONCAT adalah untuk menggabungkan nilai-nilai yang ada. Manakala penggunaan fungsi SUBSTRING_INDEX pula untuk memisahkan nilai yang ada. Dalam kes ini untuk mendapatkan nilai selepas simbol @.

5 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.