如何在 MySQL 中替换 select 返回的值?
您可以使用 select case 语句来完成此操作。其语法如下所示。
select yourColumnName1,yourColumnName2,...N,
case when yourColumnName=1 then 'true'
else 'false'
end as anyVariableName
from yourTableName;
为了理解上述语法,我们先创建一张表。创建表的查询语句如下所示。
mysql> create table selectReturnDemo
-> (
-> Id int,
-> Name varchar(100),
-> isGreaterthan18 tinyint(1)
-> );
Query OK, 0 rows affected (0.62 sec)
现在您可以使用插入命令将一些记录插入该表中。查询语句如下所示。
mysql> insert into selectReturnDemo values(1,'Carol',0);
Query OK, 1 row affected (0.23 sec)
mysql> insert into selectReturnDemo values(2,'Bob',1);
Query OK, 1 row affected (0.21 sec)
mysql> insert into selectReturnDemo values(3,'Mike',1);
Query OK, 1 row affected (0.18 sec)
mysql> insert into selectReturnDemo values(4,'David',0);
Query OK, 1 row affected (0.21 sec)
mysql> insert into selectReturnDemo values(5,'Adam',1);
Query OK, 1 row affected (0.10 sec)
使用 select 语句显示该表中所有记录。查询语句如下所示。
mysql> select *from selectReturnDemo;
以下是输出结果。
+------+-------+-----------------+
| Id | Name | isGreaterthan18 |
+------+-------+-----------------+
| 1 | Carol | 0 |
| 2 | Bob | 1 |
| 3 | Mike | 1 |
| 4 | David | 0 |
| 5 | Adam | 1 |
+------+-------+-----------------+
5 rows in set (0.00 sec)
以下是替换 select 返回值的查询语句。查询语句如下所示。
mysql> select Id,Name,
-> case when isGreaterthan18=1 then 'true'
-> else 'false'
-> end as AgeIsGreaterthan18
-> from selectReturnDemo;
以下是输出结果。
+------+-------+--------------------+
| Id | Name | AgeIsGreaterthan18 |
+------+-------+--------------------+
| 1 | Carol | false |
| 2 | Bob | true |
| 3 | Mike | true |
| 4 | David | false |
| 5 | Adam | true |
+------+-------+--------------------+
5 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程