mysql中字符串的拼接,能不能不使用concat函数
5个回答
展开全部
concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接
如连接后以逗号分隔
mysql> select concat_ws(',','11','22','33');
+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)
和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL
mysql> select concat_ws(',','11','22',NULL);
+-------------------------------+
| concat_ws(',','11','22',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)
如连接后以逗号分隔
mysql> select concat_ws(',','11','22','33');
+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)
和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL
mysql> select concat_ws(',','11','22',NULL);
+-------------------------------+
| concat_ws(',','11','22',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在java中我们通常用加号"+"来实现字符串的拼接,MySQL中也可以使用"+"来实现,比如:
先加入测试数据
?
1
2
3
4
5
6
7
CREATE TABLE test(
id INT,
name VARCHAR(10),
score FLOAT
);
INSERT INTO test VALUES(1,'zhang',98);
INSERT INTO test VALUES(2,'li',95);
?
1
SELECT NAME+'hello' FROM test;
执行结果:
Demo2
?
1
SELECT score,score+5 FROM test;
执行结果:
CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MySQL将尝试
将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值。
?
1
SELECT CONCAT(NAME,'-hello',' good') FROM test;
执行结果:
MySQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,
CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,第一个参数为要设置的分隔符,
而剩下的参数则为待拼接的字符串值
先加入测试数据
?
1
2
3
4
5
6
7
CREATE TABLE test(
id INT,
name VARCHAR(10),
score FLOAT
);
INSERT INTO test VALUES(1,'zhang',98);
INSERT INTO test VALUES(2,'li',95);
?
1
SELECT NAME+'hello' FROM test;
执行结果:
Demo2
?
1
SELECT score,score+5 FROM test;
执行结果:
CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MySQL将尝试
将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值。
?
1
SELECT CONCAT(NAME,'-hello',' good') FROM test;
执行结果:
MySQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,
CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,第一个参数为要设置的分隔符,
而剩下的参数则为待拼接的字符串值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的方法是你在存储过程中打印sql,
set
y_sql=concat_ws('
','insert','into',tmp4data,'value','(',var1,var2,')');
select
y_sql;
看看y_sql合并生什么,
其次在动态sql过程中,
你定义的tmp4data到底是变量还是表的名称,如果是名称就需要添加分号
set
y_sql=concat_ws('
','insert','into',tmp4data,'value','(',var1,var2,')');
select
y_sql;
看看y_sql合并生什么,
其次在动态sql过程中,
你定义的tmp4data到底是变量还是表的名称,如果是名称就需要添加分号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询