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

Cách kiểm tra nhiều cột cho một giá trị đơn trong MySQL

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.