Sử dụng toán tử IN để kiểm tra một giá trị có xuất hiện trong nhiều cột hay không. Cú pháp:
SELECT * FROM ten_bang WHERE 'gia_tri' IN (cot1, cot2, cot3, ...);
Ví dụ: tạo bảng OneValueFromAllColumns:
mysql> CREATE TABLE OneValueFromAllColumns (
-> StudentId INT,
-> StudentFirstname VARCHAR(200),
-> StudentLastname VARCHAR(200),
-> StudentAge INT
-> );
Chèn dữ liệu:
mysql> INSERT INTO OneValueFromAllColumns VALUES (1, 'John', 'Smith', 23), (2, 'Carol', 'Taylor', 22), (3, 'Maria', 'Garcia', 19), (4, 'Bob', 'Wilson', 21);
Dữ liệu gốc:
mysql> SELECT * FROM OneValueFromAllColumns;
+-----------+------------------+-----------------+------------+ | StudentId | StudentFirstname | StudentLastname | StudentAge | +-----------+------------------+-----------------+------------+ | 1 | John | Smith | 23 | | 2 | Carol | Taylor | 22 | | 3 | Maria | Garcia | 19 | | 4 | Bob | Wilson | 21 | +-----------+------------------+-----------------+------------+
Tìm hàng có giá trị 'Taylor' ở bất kỳ cột nào:
mysql> SELECT * FROM OneValueFromAllColumns WHERE 'Taylor' IN (StudentId, StudentFirstname, StudentLastname, StudentAge);
Kết quả:
+-----------+------------------+-----------------+------------+ | StudentId | StudentFirstname | StudentLastname | StudentAge | +-----------+------------------+-----------------+------------+ | 2 | Carol | Taylor | 22 | +-----------+------------------+-----------------+------------+
Lưu ý: MySQL có thể cảnh báo chuyển đổi kiểu (ví dụ so sánh chuỗi với cột INT), nhưng logic hoạt động đúng.