mysql单引号双引汉字_在MySQL concat里面使用多个单引号,三引号的问题

在动态拼接字符串时,我们常会用到字符拼接,我对拼接的引号不理解,如:

1、'''+ id +''' 为什么是3个引号,为什么左边一个加号右边一个加号(能不能着重帮我解释下这个,详细点)

sql code

sum(case leave when '''+ id +''' then daysno else 0 end) ['+ name +']'

正常语句:

sql code

sum(case leave when '01' then daysno end) as [事假],

sum(case leave when '02' then daysno end) as [病假]

简答:

简单的来说一般单引号是拼接语句用的,3个引号拼接是字符串变量值。

因为引号是有特殊含义的,所以要写2次,进行转义

2、字符串单引号和双引号有区别吗?

简单来说,如果是正常使用就单引号,,如果你在单引号里面还要使用单引号 。那么就要额外增加一个单引号(转义使用),变成3个单引号。

在标准 sql 中,字符串使用的是单引号。

如果字符串本身也包括单引号,使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。

mysql对 sql 的扩展,允许使用单引号和双引号两种。

简单总结:

通过concat拼字符串的时候,如果语句里面需要使用单引号,可以使用两个单引号来代替一个引号

mysql> select concat('drop user ''''@', '''', @@hostname, '''');

+----------------------------------------------------+

| concat('drop user ''''@', '''', @@hostname, '''') |

+----------------------------------------------------+

| drop user ''@'bei-f0q5bc2.gemalto.com' |

+----------------------------------------------------+

1 row in set (0.00 sec)

补充拓展:mysql插入字符串带单引号+双引号

如下所示:

string needinsertstr= 单双引号的字符串;

string finalstr = needinsertstr.replaceall("'", "\\\\\'"); //作用等于在单引号前面加上转义符号\

//对于其他特殊字符也是一样

long datemillions = system.currenttimemillis();

stringbuilder stringbuilder = new stringbuilder();

stringbuilder.append("insert into ");

stringbuilder.append(tablename);

stringbuilder.append("(uuid,name,metric_id,service_id,script,deleted,created,updated) ");

stringbuilder.append("values(uuid(),'");

stringbuilder.append(name);

stringbuilder.append("','");

stringbuilder.append(name);

stringbuilder.append("','");

stringbuilder.append(serviceid);

stringbuilder.append("','");

stringbuilder.append(finalstr);

stringbuilder.append("',0,");

stringbuilder.append(datemillions);

stringbuilder.append(",");

stringbuilder.append(datemillions);

stringbuilder.append(")");

return stringbuilder.tostring();

// script字段即是带单双引号的字符串

insert into table(string) values(' “这是测试语句”+\'测试单双引号\' ‘)

以上这篇在mysql concat里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值