Hướng dẫn like concat 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 users bạn có cột first_namemiddle_name và last_name 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 like concat mysql

Trong MySQL chúng ta có thể sử dụng hàmconcat() và concat_ws() để thực hiện công việc này.

MySQL CONCAT()

Hàm CONCAT() 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 CodeHub.vn!).

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():

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)

Áp dụng đối với trường hợp nối chuỗi từ các cột trên bảng users như đề cập ở trên bạn có thể sử dụng hàm CONCAT() như sau:

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

Hàm MySQL CONCAT_WS()

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.

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

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

Với câu query trên chúng ta sử dụng hàm CONCAT_WS() với separator là khoảng trắng " " được sử dụng là đối số đầu tiên trong hàm.

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)

Áp dụng đối với trường hợp nối chuỗi từ các cột trên bảng users như đề cập ở trên bạn có thể sử dụng hàm CONCAT_WS() như sau:

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

Hàm CONCAT_WS() 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.

Thông thường để nối chuỗi trong PHP thì chúng ta dùng dấu chấm (.), để nối chuỗi trong Javascript thì chúng ta dùng dấu cộng (+). Vậy để nối chuỗi trong MYSQL thì ta phải làm thế nào? Đơn giản là ta sẽ dùng hàm Concat trong MYSQL nhé các bạn.

Hướng dẫn like concat mysql

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. Hàm nối chuỗi Concat trong MYSQL

Hàm concat có tác dụng là nối các chuỗi lại với nhau với cú pháp như sau:

concat(str1, str2, str2, ... , strn)

Như vậy tham số truyền vào là không giới hạn, nghĩa là nếu bạn nối bao nhiêu thì sẽ truyền vào bấy nhiêu.

Bài viết này được đăng tại [free tuts .net]

Ví dụ: Nối hai chuỗi freetuts.net lại với nhau

select concat('freetuts','.net') as domain

Chạy lên kết quả sẽ là (domain => freetuts.net).

2. Một số ví dụ hàm nối chuỗi concat trong MYSQL

Sử dụng Concat trong thao tác SELECT:

Thực hiện lấy tên các tour du lịch và nối thêm một dòng chữ "Địa điểm du lịch".

SELECT CONCAT('Ðịa điểm du lịch ', title) AS title FROM tour

Sử dụng Concat trong thao tác INSERT:

Trong thao tác thêm tour du lịch hãy nối thêm một dòng chữ "Chào mừng" vào tiêu đề.

INSERT INTO tour(title) VALUES(CONCAT('Chào mừng', 'Tiêu đề tour'))

Sử dụng Concat trong thao tác UPDATE:

Mỗi khi update hãy tự động nối chuỗi "Địa điểm du lịch" vào tiêu đề của tour.

UPDATE tour SET title = CONCAT('Địa điểm du lịch', 'Tieu de tour') WHERE id = 12

Sử dụng Concat trong thao tác DELETE:

Khi xóa bài viết theo tiêu đề hãy nối thêm dòng chữ "Địa điểm du lịch" ở trong điều kiện xóa.

DELETE FROM tour WHERE title = CONCAT('Địa điểm du lịch', 'tiêu đề tour')

Lời kết:

Đối với hàm nối chuỗi thì chúng ta thực hiện đa số ở các thao tác trên, nhưng ngoài ra nó còn thực hiện ở Stored Procedure trong MYSQL nữa, nhưng vì bài này chỉ mang tính chất giới thiệu nên mình dừng ở đây. Chúc các bạn học tốt