在MySQL concat里面使用多个单引号,三引号的问题

吾爱主题 阅读:175 2024-04-05 16:20:44 评论:0

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

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拼字符串的时候,如果语句里面需要使用单引号,可以使用两个单引号来代替一个引号

?
1 2 3 4 5 6 7 mysql> select concat( 'drop user ' '' '@' , '' '' , @@hostname, '' '' ); + ----------------------------------------------------+ | concat( 'drop user ' '' '@' , '' '' , @@hostname, '' '' ) | + ----------------------------------------------------+ | drop user '' @ 'bei-f0q5bc2.gemalto.com'       | + ----------------------------------------------------+ 1 row in set (0.00 sec)

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

如下所示:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/wqc19920906/article/details/79790774

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容