Hướng dẫn concat_ws trong mysql - concat_ws in mysql

Nối chuỗi trong MySQL sử dụng CONCAT() và CONCAT_WS()

Trong một số tình huống khi làm việc với kiểu dữ liệu chuỗi (hay string) trong cơ sở dữ liệu MySQL chúng ta cần nối các chuỗi với nhau trước khi trả về kết quả. Ví dụ trong bảng 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
0 bạn có cột 
+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
1, 
+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
2 và 
+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
3 và bạn muốn nối hai chuỗi từ ba cột tương ứng này để hiển thị tên đầy đủ của người dùng.

Hướng dẫn concat_ws trong mysql - concat_ws in mysql

Trong MySQL chúng ta có thể sử dụng hàm

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
4 và 
+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
5 để thực hiện công việc này.

MySQL CONCAT()

Hàm 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
6 trong MySQL được dùng để nối hai hoặc nhiều chuỗi với nhau:

Một ví dụ đơn giản sau:

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!");

Lưu ý rằng ở câu SQL query trên ở cuối mỗi chuỗi chúng ta cần thêm khoảng trắng (từ chuỗi cuối cùng 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
7).

Kết quả hiển thị:

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)

Nếu bạn muốn đánh tên cho cột dữ liệu trả về từ hàm 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
6:

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;

Kết quả hiển thị:

+-------------------------------+
| my_string                     |
+-------------------------------+
| Học MySQL trên CodeHub.vn!    |
+-------------------------------+
1 row in set (0.00 sec)

Nếu bạn muốn đánh tên cho cột dữ liệu trả về từ hàm 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
6:

SELECT CONCAT(first_name, " ", middle_name, " ", last_name) AS full_name from users;

Áp dụng đối với trường hợp nối chuỗi từ các cột trên bảng +-----------------------------------------------------+ | CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") | +-----------------------------------------------------+ | Học MySQL trên CodeHub.vn! | +-----------------------------------------------------+ 1 row in set (0.00 sec)0 như đề cập ở trên bạn có thể sử dụng hàm +-----------------------------------------------------+ | CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") | +-----------------------------------------------------+ | Học MySQL trên CodeHub.vn! | +-----------------------------------------------------+ 1 row in set (0.00 sec)6 như sau:

Hàm MySQL 

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
1

Một ví dụ đơn giản sau:

SELECT CONCAT_WS(" ", "Học ", "MySQL ", "trên ", "CodeHub.vn!");

Lưu ý rằng ở câu SQL query trên ở cuối mỗi chuỗi chúng ta cần thêm khoảng trắng (từ chuỗi cuối cùng 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
7).

Kết quả hiển thị:

+-------------------------------------------------------------+
| CONCAT_WS(" ", "Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-------------------------------------------------------------+
| Học  MySQL  trên  CodeHub.vn!                               |
+-------------------------------------------------------------+
1 row in set (0.01 sec)

Nếu bạn muốn đánh tên cho cột dữ liệu trả về từ hàm 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
6:

SELECT CONCAT(" ", first_name, middle_name, last_name) AS full_name from users;

Áp dụng đối với trường hợp nối chuỗi từ các cột trên bảng 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
0 như đề cập ở trên bạn có thể sử dụng hàm 
+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
6 như sau:

Hàm MySQL 

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
1

Hướng dẫn concat_ws trong mysql - concat_ws in mysql

Hàm CONCAT() trong MySQL được dùng để nối hai hoặc nhiều chuỗi với nhau và thêm ký tự phân biệt (separator) giữa mỗi chuối được nối.freetuts.net, không được copy dưới mọi hình thức.

Với câu query trên chúng ta sử dụng hàm SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;1 với separator là khoảng trắng " " được sử dụng là đối số đầu tiên trong hàm.

Áp dụng đối với trường hợp nối chuỗi từ các cột trên bảng 

+-----------------------------------------------------+
| CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!")    |
+-----------------------------------------------------+
| Học MySQL trên CodeHub.vn!                          |
+-----------------------------------------------------+
1 row in set (0.00 sec)
0 như đề cập ở trên bạn có thể sử dụng hàm 
SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
1 như sau:

Hàm SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;1 rất thuận tiện trong trường hợp bạn cần nối nhiều chuỗi và giữa mỗi chuỗi cần thêm một ký tự phân biệt.

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm 

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
6 trong 
SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
7 thông qua cú pháp và ví dụ thực tế.

CONCAT_WS( separator, expression1, expression2, ... expression_n )

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Mô tả

Hàm

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
6 dùng để ghép hai hoặc nhiều biểu thức lại với nhau và thêm một dấu phân cách giữa mỗi biểu thức được nối.

+-------------------------------+
| my_string                     |
+-------------------------------+
| Học MySQL trên CodeHub.vn!    |
+-------------------------------+
1 row in set (0.00 sec)
2: Các biểu thức để nối với nhau.

3. Version

Hàm

SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
6 có thể được sử dụng trong các phiên bản sau của
SELECT CONCAT("Học ", "MySQL ", "trên ", "CodeHub.vn!") AS my_string;
7:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

4. Ví dụ

mysql> SELECT CONCAT_WS('_', 'free', 'tuts', 'dot', 'net');
Ket qua: 'free_tuts_dot_net'

mysql> SELECT CONCAT_WS(',', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
Ket qua: '0,1,2,3,4,5,6,7,8,9'

mysql> SELECT CONCAT_WS(', ', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
Ket qua: '0, 1, 2, 3, 4, 5, 6, 7, 8, 9'

mysql> SELECT CONCAT_WS('Test', 'a', 'b', 'c');
Ket qua: 'aTestbTestc'

mysql> SELECT CONCAT_WS('Test', 'a', 'b', NULL, 'c');
Ket qua: 'aTestbTestc'

mysql> SELECT CONCAT_WS(NULL, 'a', 'b', 'c');
Ket qua: NULL