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

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)

如下所示:

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字段即是带单双引号的字符串

更多相关文章

  1. python list.sort()根据多个关键字排序的方法实现
  2. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  3. 【android】监听网络变化连续多个广播的问题解决
  4. android sqlite 一次创建多个表
  5. android同一个程序中使用多个地图出现混乱怎么办?!
  6. Android中如何取得联系人,如何得到一个联系人下面的多个号码
  7. Android(安卓)Preference的使用总结(很全很详细)以及SharedPrefere
  8. Android(安卓)15本经典教程和150多个实例源码
  9. Android(安卓)多个Fragment切换动画

随机推荐

  1. 搭建Android + Eclipse环境时遇到的问题
  2. PackageManagerService(Android5.1)深入
  3. Android 网络编程
  4. mac版 android破解软件下载安装
  5. 【Android开发教程】一、基础概念
  6. RotateAniamtion_实现Android简单动画旋
  7. Android并发编程之如何使用ReentrantRead
  8. Android EditText的inputType属性值
  9. 【Android 应用开发】Android资源文件 -
  10. Ubuntu 编译Android若干错误及解决方法(