在select查询时追加(添加)一个字段并指定值
在特定时候,在 mysql 的查询结果中我们需要追加一个字段来实现某些特定的功能,这时我们可以用到以下语法来实现
值 as 字段
比如我们需要给这个查询结果追加一个 xx 字段并赋值为 null ,可以这样实现
select *, null as xx from topic;
使用select查询时,在查询结果中增加一个字段并指定固定值
假设需求是这样的:
mysql> desc user;
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(30) | NO | | NULL | |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
假设user表中,有id和name两个字段,现在需要查询user表中所有数据,并增加一个字段(is_person),判断该记录所描述的是不是一个人?
别去钻牛角尖,很明显,is_person的值始终为true,那么在查询的时候,就可以在返回结果中新增一个字段is_person,并指定值为true。
mysql> select * from user;
+----+------+
| id | name |
+----+------+
| 1 | abc |
| 2 | xyz |
+----+------+
2 rows in set (0.00 sec)
mysql> select *,"true" as is_person from user;
+----+------+-----------+
| id | name | is_person |
+----+------+-----------+
| 1 | abc | true |
| 2 | xyz | true |
+----+------+-----------+
2 rows in set (0.00 sec)
注意上面的格式,使用关键字as,这里的as和平时使用的as代表的意思是相同的!!!
平常使用as是为字段取一个别名,as的左边是一个原始字段名,右边是新的别名,该别名会显示在查询结果中,而原始字段名代表的就是该字段的值;
此处为新增字段指定固定值,as的左边为新增字段的固定值,右边才是新增字段的字段名,此时字段名不用加引号,如果固定值为数值型则不用加引号,如果固定值为其他类型则必须加引号。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。