Kenapa Fungsi Concat MySQL Menghasilkan Nilai NULL?

Misal kita buat tabel berikut

CREATE TABLE concatenull (
id int auto_increment not null,
text1 varchar(50) null,
text2 varchar(50) null,
primary key (id)
);

Lalu kita tambah data berikut :

INSERT INTO concatenull (text1, text2) VALUES('kerai', 'putih');
INSERT INTO concatenull (text1, text2) VALUES('jubah', null);

Berarti akan ada data berikut :

+----+-------+-------+
| id | text1 | text2 |
+----+-------+-------+
|  1 | kerai | putih |
|  2 | jubah | NULL  |
+----+-------+-------+

Untuk kasus tertentu, kita perlu menggabungkan (concatenate) kolom text1 dan text2 sehingga akan menjadi “kerai putih” dan “jubah”.

Hal seperti ini di mysql rupanya tidak bisa dilakukan dengan menggunakan fungsi concat karena ada kolom yang bernilai NULL.

SELECT id, text1, text2, CONCAT(text1, text2) AS con FROM concatenull;
+----+-------+-------+------------+
| id | text1 | text2 | con        |
+----+-------+-------+------------+
|  1 | kerai | putih | keraiputih |
|  2 | jubah | NULL  | NULL       |
+----+-------+-------+------------+
2 rows in set (0.00 sec)

Alternatifnya, bisa menggunakan fungsi concat_ws

SELECT id, text1, text2, CONCAT_WS('', text1, text2) AS con FROM concatenull;
+----+-------+-------+------------+
| id | text1 | text2 | con        |
+----+-------+-------+------------+
|  1 | kerai | putih | keraiputih |
|  2 | jubah | NULL  | jubah      |
+----+-------+-------+------------+
2 rows in set (0.00 sec)

Nah, sekian.

Iklan

Silahkan berkomentar ...

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s