sql字段操作(拼接、计算)

拼接字段MySQL用到的是concat()函数。拼接字段可以将不同字段的值连接起来,select时在一个列里面显示。比如将cpu的型号和线程数两个字段显示在一个列中。

1
2
3
4
5
6
7
8
9
mysql> select concat(model_cpu,'(',num_cpus,')') from device_info order by model_cpu limit 4; +--------------------------------------+ 
| concat(model_cpu,'(',num_cpus,')') |
+--------------------------------------+
| Intel(R)Xeon(R)CPUE5-26200@2.00G(8) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(8) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(24) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(24) |
+--------------------------------------+
4 rows in set (0.00 sec)

如果感觉拼接后的字段名不是很美观,可以使用as更改显示名(即字段使用别名)。

1
2
3
4
5
6
7
8
9
mysql> select concat(model_cpu, '(',num_cpus,')') as cpu from device_info order by model_cpu limit 4; +--------------------------------------+ 
| cpu |
+--------------------------------------+
Intel(R)Xeon(R)CPUE5-26200@2.00G(8) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(8) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(24) |
| Intel(R)Xeon(R)CPUE5-26200@2.00G(24) |
+--------------------------------------+
4 rows in set (0.00 sec)

如果在拼接字段时候,某些字段可能左右含有多个空格会影响美观,可以尝试函数RTRIM()LTRIM()TRIM(),分别是去掉字符串右边的空格、左边的空格、左右两边的空格。在查询时还可以对字段进行算术运算,其实sql可以完成一般计算工作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mysql> select 3+4*5; 
+-------+
| 3+4*5 |
+-------+
| 23 |
+-------+
1 row in set (0.00 sec)

mysql> select 2-7*6+30-6/2;
+--------------+
| 2-7*6+30-6/2 |
+--------------+
| -13.0000 |
+--------------+
1 row in set (0.00 sec)

mysql> select cos(0);
+--------+
| cos(0) |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)

sql支持字段值的计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> select num_cpus from device_info limit 4; 
+----------+
| num_cpus |
+----------+
| 8 |
| 24 |
| 8 |
| 12 |
+----------+
4 rows in set (0.00 sec)

mysql> select num_cpus*2 from device_info limit 4;
+------------+
| num_cpus*2 |
+------------+
| 16 |
| 48 |
| 16 |
| 24 |
+------------+
4 rows in set (0.00 sec)

先记录下,有时间再继续学习。

----------------本文结束 感谢阅读----------------