Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Hiển thị khoảng trắng ẩn trong dữ liệu MySQL với QUOTE()

Khi xem dữ liệu trong command line client, khoảng trắng (space, tab, newline) ở đầu/cuối/giữa chuỗi không hiển thị được. Dùng hàm QUOTE() để thấy rõ.

Cú pháp

SELECT tên_cột, QUOTE(tên_cột) FROM tên_bảng;

Ví dụ minh họa

Tạo bảng demo:

mysql> CREATE TABLE seeSpacesDemo (
    -> spaceValue VARCHAR(10)
    -> );
Query OK, 0 rows affected (0.42 sec)

Chèn các giá trị khoảng trắng khác nhau:

mysql> INSERT INTO seeSpacesDemo VALUES (''), (' '), ('  '), ('   ');

Xem thường (trông giống hệt nhau):

mysql> SELECT * FROM seeSpacesDemo;
+------------+
| spaceValue |
+------------+
|            |
|            |
|            |
|            |
+------------+

Dùng QUOTE() để thấy rõ:

mysql> SELECT spaceValue, QUOTE(spaceValue) FROM seeSpacesDemo;
+------------+-------------------+
| spaceValue | QUOTE(spaceValue) |
+------------+-------------------+
|            | ''                |
|            | ' '               |
|            | '  '              |
|            | '   '             |
+------------+-------------------+

Giải thích QUOTE()

  • Bọc chuỗi trong dấu nháy đơn '
  • Escape các ký tự đặc biệt: \', \\, \n, \t, \0
  • NULL → từ NULL (không có dấu nháy)
  • Chuỗi rỗng → ''

So sánh với các hàm khác

HàmKết quả cho ' a 'Dùng cho
QUOTE()' a 'Debug, export SQL an toàn
HEX()206120Xem mã hex từng byte
LENGTH()3Đếm byte
CHAR_LENGTH()3Đếm ký tự

Ứng dụng thực tế

  • Debug dữ liệu "sạch" nhưng không JOIN được do khoảng trắng ẩn
  • Kiểm tra import CSV/Excel có ký tự lạ
  • So sánh chuỗi an toàn: WHERE QUOTE(col1) = QUOTE(col2)

Mẹo: TRIM() chỉ xóa khoảng trắng đầu/cuối. Dùng REPLACE(col, ' ', '') để xóa tất cả space.