mysql> select 'abc'+'123';
+-------------+
| 'abc'+'123' |
+-------------+
| 123 |
+-------------+
1 row in set, 1 warning (0.00 sec)
mysql> select '123'+'123';
+-------------+
| '123'+'123' |
+-------------+
| 246 |
+-------------+
1 row in set (0.00 sec)
mysql> select 123+123;
+---------+
| 123+123 |
+---------+
| 246 |
+---------+
1 row in set (0.00 sec)
mysql> select concat('123','123');
+---------------------+
| concat('123','123') |
+---------------------+
| 123123 |
+---------------------+
1 row in set (0.00 sec)
mysql> select concat('123',123);
+-------------------+
| concat('123',123) |
+-------------------+
| 123123 |
+-------------------+
1 row in set (0.00 sec)
mysql> select concat(123,123);
+-----------------+
| concat(123,123) |
+-----------------+
| 123123 |
+-----------------+
1 row in set (0.00 sec)
mysql> select concat(123,123,123);
+---------------------+
| concat(123,123,123) |
+---------------------+
| 123123123 |
+---------------------+
1 row in set (0.00 sec)
仔细观察上面测试,MYSQL会尝试将加号两端的字段值尝试转换为数字类型,如果转换失败则认为字段值为0。在MYSQL中进行字符串的拼接要使用CONCAT函数,CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MYSQL将尝试将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值。与MYSQL不同,MSSQLServer中可以直接使用加号“+”来拼接字符串。