Sử dụng hàm CONCAT() để làm việc với biến người dùng (user variable) trong mệnh đề LIKE. Cú pháp:
SET @tenBien = 'giaTri';
SELECT cot1, cot2, ... FROM ten_bang WHERE ten_cot LIKE CONCAT('%', @tenBien, '%');
Ví dụ: tạo bảng UserVariableInLike:
mysql> CREATE TABLE UserVariableInLike (
-> id INT,
-> Name VARCHAR(100),
-> Age INT
-> );
Chèn dữ liệu:
mysql> INSERT INTO UserVariableInLike VALUES (101, 'John', 23); mysql> INSERT INTO UserVariableInLike VALUES (102, 'John Smith', 24); mysql> INSERT INTO UserVariableInLike VALUES (103, 'Carol Smith', 23); mysql> INSERT INTO UserVariableInLike VALUES (104, 'Johnson', 25); mysql> INSERT INTO UserVariableInLike VALUES (105, 'Adam Smith', 26);
Dữ liệu gốc:
mysql> SELECT * FROM UserVariableInLike;
+------+-------------+------+ | id | Name | Age | +------+-------------+------+ | 101 | John | 23 | | 102 | John Smith | 24 | | 103 | Carol Smith | 23 | | 104 | Johnson | 25 | | 105 | Adam Smith | 26 | +------+-------------+------+
Sử dụng biến trong LIKE:
mysql> SET @searchName = 'John';
mysql> SELECT id, Name, Age FROM UserVariableInLike WHERE Name LIKE CONCAT('%', @searchName, '%');
Kết quả (tìm các tên chứa 'John'):
+------+------------+------+ | id | Name | Age | +------+------------+------+ | 101 | John | 23 | | 102 | John Smith | 24 | | 104 | Johnson | 25 | +------+------------+------+