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ự đầuUPPER()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).