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

Hiển thị bản ghi nơi tên và họ bắt đầu bằng cùng một chữ cái trong MySQL

Sử dụng LEFT() để lấy ký tự đầu tiên và UPPER() để so sánh không phân biệt hoa/thường.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable789(FirstName VARCHAR(100), LastName VARCHAR(100)); 
Query OK, 0 rows affected (0.78 sec)

mysql> INSERT INTO DemoTable789 VALUES 
('Adam','Smith'), ('Tom','Taylor'), ('Bob','Brown'), ('David','Miller'); 
Query OK, 4 rows affected

Truy vấn lọc cùng chữ cái đầu

mysql> SELECT * FROM DemoTable789 
WHERE UPPER(LEFT(FirstName, 1)) = UPPER(LEFT(LastName, 1));

Kết quả:

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Tom       | Taylor   |
| Bob       | Brown    |
+-----------+----------+

Giải thích:

  • LEFT(str, 1) lấy 1 ký tự đầu
  • UPPER() chuyển thành chữ hoa để so sánh case-insensitive
  • Adam (A) ≠ Smith (S), Tom (T) = Taylor (T), Bob (B) = Brown (B), David (D) ≠ Miller (M)

Cách thay thế: SUBSTRING(FirstName, 1, 1) = SUBSTRING(LastName, 1, 1) (mặc định MySQL so sánh case-insensitive với collation mặc định).