MySQL concat里面使用多个单引号,三引号

在动态拼接字符串时,我们常会用到字符拼接,我对拼接的引号不理解,如:
1、'''+ id +'''  为什么是3个引号,为什么左边一个加号右边一个加号(能不能着重帮我解释下这个,详细点)

sum(case Leave when '''+ id +''' then DaysNo else 0 end) ['+ name +']'

正常语句:

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)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值