MySQL seleciona qualquer campo entre dois em relação ao valor de um terceiro campo?
Para isso, use SE(). Vamos primeiro criar uma tabela:
mysql> create table DemoTable
-> (
-> PlayerName varchar(100),
-> PlayerScore int,
-> PlayerStatus varchar(100)
-> );
Query OK, 0 rows affected (0.58 sec)
Insira alguns registros na tabela usando o comando insert:
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)
Exiba todos os registros da tabela usando a instrução select:
mysql> select *from DemoTable;
Saída
+------------+-------------+--------------+
| PlayerName | PlayerScore | PlayerStatus |
+------------+-------------+--------------+
| John | 88 | BAD |
| Chris | 78 | BAD |
| Robert | 90 | BAD |
| David | 80 | BAD |
+------------+-------------+--------------+
4 rows in set (0.00 sec)
A seguir está a consulta para selecionar qualquer campo entre dois em relação ao valor de um terceiro campo:
mysql> select PlayerScore,if(PlayerScore > 80 , PlayerName ,PlayerStatus) AS Result from DemoTable;
Saída
+-------------+--------+
| PlayerScore | Result |
+-------------+--------+
| 88 | John |
| 78 | BAD |
| 90 | Robert |
| 80 | BAD |
+-------------+--------+
4 rows in set (0.00 sec)