Chuỗi nối MySQL

Hãy tính đến điều này khi bạn nối các chuỗi ký tự với các giá trị cột có thể chứa NULL

  SELECT CONCAT('AB', NULL, 'EF');
  -- Result: NULL

Bạn có thể sử dụng hàm IFNULL để thay thế các giá trị NULL trước khi nối

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;

Ngoài ra, hàm CONCAT_WS coi NULL là '' (chuỗi trống) và cho phép sử dụng '' làm dấu phân cách

  SELECT CONCAT_WS('', 'AB', NULL, 'CD');
  -- Result: ABCD

Toán tử nối chuỗi

Đặt sql_mode thành PIPES_AS_CONCAT hoặc ANSI cho phép. để nối các chuỗi

  -- By default, || is synonym to OR logical operator
  SELECT 'A' || 'B';
  -- Result: 0
 
  SET sql_mode = PIPES_AS_CONCAT;
 
  -- Now we can use || to concatenate strings
  SELECT 'A' || 'B' || 'C';
  -- Result: ABC
 
  -- If any value is NULL, the result is NULL
  SELECT 'A' || NULL || 'C';
  -- Result: NULL

Nối chuỗi trong các cơ sở dữ liệu khác

tiên tri

Toán tửNULL là '' (chuỗi trống)CONCAT(s1, s2)2 chỉ đối sốNULL là ''

Máy chủ SQL

+ Toán tửNếu bất kỳ giá trị nào là NULL, kết quả là NULL, trừ khi CONCAT_NULL_YIELDS_NULL là OFF+= OperatorTransact/SQL onlys1 += s2 bằng s1 = s1 + s2

PostgreSQL

Toán tửNếu bất kỳ giá trị nào là NULL, kết quả là NULLCONCAT(s1, s2,…)NULL là ''CONCAT_WS(sep, s1, s2,…)Cho phép chỉ định dấu phân cáchNULL là ''

nối chuỗi

tiên tri

Oracle hỗ trợ hàm CONCAT, nhưng nó chỉ có thể chấp nhận 2 đối số. Đối với hơn 2 đối số, việc chuyển đổi thành. cần có toán tử nối chuỗi hoặc lệnh gọi CONCAT lồng nhau

   -- Concatenate 2 strings
   SELECT CONCAT('AB', 'CD');
 
   -- Concatenate more than 2 strings
   SELECT 'AB' || 'CD' || 'EF';
   -- or
   SELECT CONCAT(CONCAT('AB', 'CD'),'EF') FROM dual;

Máy chủ SQL

SQL Server không hỗ trợ hàm CONCAT nên việc chuyển đổi sang + toán tử nối chuỗi là bắt buộc

aHướng dẫn SQL này tập trung vào Nối chuỗi SQL trong MySQL và cung cấp các giải thích, ví dụ và bài tập. Đối với các bài tập của bài học này, hãy sử dụng liên kết này

Hướng dẫn này là một phần của một số bài viết giải thích cách viết các truy vấn cơ bản trong MySQL. Để đọc các bài viết bổ sung về chủ đề này, vui lòng sử dụng các liên kết sau

  • Viết câu lệnh SQL SELECT cơ bản
  • Toán tử số học SQL
  • Bí danh cột SQL
  • Nối chuỗi SQL 
  • Từ khóa SQL DISTINCT 

Nối chuỗi MySQL

Nối chuỗi MySQL cho phép bạn nối một chuỗi vào cuối chuỗi khác. Để hiển thị nội dung của hai cột trở lên dưới tên của một cột, bạn có thể sử dụng hàm Concat của MySQL theo cú pháp sau

CONCAT(String1,String2,String3...)

Ví dụ: để hiển thị tên cuốn sách cùng với giá của nó, hãy sử dụng câu lệnh MySQL SQL sau

SELECT CONCAT(bookName,bookPrice)
FROM books

Kết quả

CONCAT(bookName, bookPrice)
--------------------------
Dune30

MySQL – Nối hai trường với một khoảng trắng

Mặc dù trong ví dụ trước, kết quả được yêu cầu – hợp nhất hai giá trị từ hai cột khác nhau – đã đạt được, nhưng kết quả cuối cùng vẫn khá khó đọc, vì chúng tôi không có dấu cách giữa tên sách và giá sách. Do đó, bạn cũng nên nối một khoảng trắng (‘ ‘)

________số 8

Kết quả

CONCAT(bookName, ' ' , bookPrice)
---------------------------------
Dune 30

Sử dụng bí danh cột MySQL

Để làm cho kết quả dễ đọc hơn, hãy sử dụng n MySQL Column Aliases

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;
0

Kết quả

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;
1

MySQL – Truy xuất các cột bổ sung

Trong MySQL, nếu sau hoặc trước đoạn nối này, bạn muốn hiển thị một cột riêng biệt bổ sung, chỉ cần sử dụng dấu phẩy (,)

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;
2

Kết quả

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;
3

MySQL – Nối nhiều hơn hai giá trị

Trong MySQL có thể tạo các phép nối phức tạp hơn theo yêu cầu

  SELECT name, CONCAT('Price is ', IFNULL(price, 'N/A')) FROM prices;
4

Kết quả

SELECT CONCAT(bookName,bookPrice)
FROM books
0

Sử dụng CONCAT_WS

Một hàm MySQL khác được sử dụng để nối chuỗi là CONCAT_WS, hàm này là một dạng đặc biệt của hàm CONCAT và ngoài chức năng nối chuỗi, với CONCAT_WS, bạn có thể xác định (hoặc nhiều ký tự) ký tự nào sẽ được sử dụng làm dấu phân cách

Ví dụ

SELECT CONCAT(bookName,bookPrice)
FROM books
1

UpScale Analytics là một trong những nền tảng lớn nhất trên thế giới để học SQL bằng cách thực hành, bao gồm hơn 300 bài tập SQL ở các cấp độ khác nhau (bao gồm cả giải pháp), theo chủ đề, trên hơn 100 bộ dữ liệu khác nhau. Hơn…

Làm cách nào để nối chuỗi trong MySQL?

Hàm CONCAT() trong MySQL dùng để nối các đối số đã cho. Nó có thể có một hoặc nhiều đối số. Nếu tất cả các đối số là chuỗi không nhị phân, thì kết quả là một chuỗi không nhị phân. Nếu các đối số bao gồm bất kỳ chuỗi nhị phân nào, thì kết quả là một chuỗi nhị phân.

Bạn có thể sử dụng. để nối trong MySQL?

|| is the ANSI standard string concatenation operator, supported by most databases (notably not MS SQL Server). MySQL cũng hỗ trợ nó , nhưng bạn phải SET sql_mode='PIPES_AS_CONCAT'; . Lưu câu trả lời này.

Làm cách nào để nối chuỗi và cột trong MySQL?

Hàm CONCAT() của MySQL dùng để cộng hai hoặc nhiều chuỗi. .
Có thể có một hoặc nhiều đối số
Trả về chuỗi kết quả từ việc nối các đối số
Trả về một chuỗi không nhị phân, nếu tất cả các đối số là chuỗi không nhị phân
Trả về một chuỗi nhị phân, nếu các đối số bao gồm bất kỳ chuỗi nhị phân nào

Bạn có thể sử dụng += để nối các chuỗi không?

Nối chuỗi sử dụng toán tử += . Toán tử này cho phép kết nối các chuỗi bằng một hoặc nhiều biến. Another way to join two or more strings to make a concatenated string is to use the addition assignment operator (+=). This operator makes it possible to connect strings using one or more variables.