Sử dụng LIKE kết hợp CONCAT('%', column, '%') để kiểm tra một cột có chứa giá trị của cột khác trong cùng hàng.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable(FirstName VARCHAR(100), FullName VARCHAR(100));
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable VALUES
('John','John Smith'), ('David','John Miller'), ('Bob','Sam Miller'), ('Chris','Chris Brown');
Query OK, 4 rows affected
Tìm hàng có FirstName xuất hiện trong FullName
mysql> SELECT FirstName, FullName FROM DemoTable
WHERE FullName LIKE CONCAT('%', FirstName, '%');
Kết quả:
+-----------+-------------+ | FirstName | FullName | +-----------+-------------+ | John | John Smith | | Chris | Chris Brown | +-----------+-------------+
Giải thích: CONCAT('%', FirstName, '%') tạo pattern như '%John%', '%David%'... Sau đó LIKE so khớp với FullName.
Phân biệt: David có FirstName='David' nhưng FullName='John Miller' → không khớp. Bob có 'Bob' nhưng FullName='Sam Miller' → không khớp.
Hiệu năng: LIKE với wildcard đầu '%...' không dùng được index. Với dữ liệu lớn, cân nhắc FULLTEXT SEARCH.