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

Làm thế nào để đổi chữ hoa/thường cho mọi cột trong bảng MySQL một lần?

Sử dụng UPDATE kết hợp hàm LOWER() (hoặc UPPER()) áp dụng cho từng cột cần chuyển đổi.

Tạo bảng

mysql> CREATE TABLE DemoTable (
    -> Id VARCHAR(100),
    -> StudentFirstName VARCHAR(20),
    -> StudentLastName VARCHAR(20),
    -> StudentCountryName VARCHAR(10)
    -> );

Chèn dữ liệu (chữ hoa/thường lẫn lộn)

mysql> INSERT INTO DemoTable VALUES('STU-101', 'John', 'Smith', 'US');
mysql> INSERT INTO DemoTable VALUES('STU-102', 'John', 'Doe', 'UK');
mysql> INSERT INTO DemoTable VALUES('STU-103', 'David', 'Miller', 'AUS');

Xem dữ liệu gốc

mysql> SELECT * FROM DemoTable;
+---------+------------------+-----------------+--------------------+
| Id      | StudentFirstName | StudentLastName | StudentCountryName |
+---------+------------------+-----------------+--------------------+
| STU-101 | John             | Smith           | US                 |
| STU-102 | John             | Doe             | UK                 |
| STU-103 | David            | Miller          | AUS                |
+---------+------------------+-----------------+--------------------+

Chuyển tất cả cột sang chữ thường

mysql> UPDATE DemoTable 
    -> SET Id = LOWER(Id),
    ->     StudentFirstName = LOWER(StudentFirstName),
    ->     StudentLastName = LOWER(StudentLastName),
    ->     StudentCountryName = LOWER(StudentCountryName);
Query OK, 3 rows affected (0.22 sec)

Kiểm tra kết quả

mysql> SELECT * FROM DemoTable;
+---------+------------------+-----------------+--------------------+
| Id      | StudentFirstName | StudentLastName | StudentCountryName |
+---------+------------------+-----------------+--------------------+
| stu-101 | john             | smith           | us                 |
| stu-102 | john             | doe             | uk                 |
| stu-103 | david            | miller          | aus                |
+---------+------------------+-----------------+--------------------+

Hàm chuyển đổi chữ cái

HàmChức năngVí dụ
LOWER(str)Chuyển thành chữ thườngLOWER('ABC') → 'abc'
UPPER(str)Chuyển thành chữ HOAUPPER('abc') → 'ABC'
UCASE(str)Alias của UPPER()UCASE('abc') → 'ABC'
LCASE(str)Alias của LOWER()LCASE('ABC') → 'abc'

Lưu ý

  • Phải liệt kê từng cột trong SET — MySQL không hỗ trợ "UPDATE tất cả cột string"
  • Chỉ ảnh hưởng cột kiểu chuỗi (CHAR, VARCHAR, TEXT...), cột số/ngày không thay đổi
  • Collation决定大小写敏感性, nhưng LOWER/UPPER luôn hoạt động trên byte
  • Với bảng lớn, cân nhắc chia batch để tránh khóa bảng lâu