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

Kiểm tra chuỗi con trong cùng hàng với LIKE và CONCAT trong MySQL

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.