Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL chọn bất kỳ một trường nào trong số hai trường đối với giá trị của trường thứ ba?

Đối với điều này, hãy sử dụng IF (). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> PlayerName varchar(100),
   -> PlayerScore int,
   -> PlayerStatus varchar(100)
   -> );
Query OK, 0 rows affected (0.58 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('John',88,'BAD');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('Chris',78,'BAD');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('Robert',90,'BAD');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('David',80,'BAD');
Query OK, 1 row affected (0.23 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

+------------+-------------+--------------+
| PlayerName | PlayerScore | PlayerStatus |
+------------+-------------+--------------+
| John       | 88          | BAD          |
| Chris      | 78          | BAD          |
| Robert     | 90          | BAD          |
| David      | 80          | BAD          |
+------------+-------------+--------------+
4 rows in set (0.00 sec)

Sau đây là truy vấn để chọn bất kỳ một trường nào trong số hai trường liên quan đến giá trị của trường thứ ba -

mysql> select PlayerScore,if(PlayerScore > 80 , PlayerName ,PlayerStatus) AS Result from DemoTable;

Đầu ra

+-------------+--------+
| PlayerScore | Result |
+-------------+--------+
|          88 | John   |
|          78 | BAD    |
|          90 | Robert |
|          80 | BAD    |
+-------------+--------+
4 rows in set (0.00 sec)