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

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里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

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

本文地址: http://www.cppcns.com/shujuku/mysql/301908.html

mysql concat 引号_在MySQL concat里面使用多个单引号,三引号的问题相关推荐

  1. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  2. mysql转义单引号双引号_[转] mysql 单引号 双引号

    今天在写一条sql语句的时候,用的双引号,sql语句执行错误.记的同事问我mysql语句中的单引号和双引号有区别吗?回答是没有区别. 今天特地查了查,还是有点区别的. mysql中的一段说明: 在my ...

  3. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

  4. mysql 字符串特殊字符_转:MySQL数据入库时特殊字符处理

    在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 ("\")开头,称为转义字符. MySQL 识别下列转义字符: \0 一个 ASCII 0 (NUL) 字符. \ ...

  5. mysql emoji表情_让MySQL支持Emoji表情 mysql 5.6

    最近在做微信相关的项目,其中MySQL 要存储emoji表情,因此发现我们常用的utf8 字符集根本无法存储表情.网上有不少替代方案.本人还是采用了修改MySQL字符集的方案简单快捷. 首先将我们数据 ...

  6. mysql binlog 备份_做好mysql运维,必须熟练掌握备份和恢复,实战一次不行多来几次...

    原文:https://www.toutiao.com/i6855460778359816715/ 平台:头条 作者:程序员不就是0和1 一. 备份恢复策略 进行备份或恢复操作时需要考虑一些因素: 1. ...

  7. mysql 用户名 长度_一个 MySQL 用户名长度的坑

    今天使用 PHP 连接一个 MySQL 数据库的时候连不上,提示无权限. 因为 MySQL 是在另外一个机房,首先想到的是防火墙的原因,但使用 MySQL-cli 却能正常连接,遂排除这种可能. 又怀 ...

  8. mysql语句命令_常用MySQL语句(命令行)

    # 命令行客户端MySQLMySQL是一个关系型数据库管理系统 安装MySQL服务端软件使用: sudo apt-get install mysql-server 安装MySQL客户端软件使用: su ...

  9. php mysql emoji表情_让MySQL支持Emoji表情

    让MySQL支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集.utf8mb4和utf8到底有什么区别呢?原来以往的 让MySQL支持Emoji表情,涉及无线 ...

最新文章

  1. 单元测试中,模拟一个新对象
  2. WinCE开发初探——开发环境
  3. Tomcat数据源总结
  4. exchange server 2003 安装过程中的一个问题
  5. MyBatis在insert插入操作时返回主键ID
  6. sublime text3的php代码合法检查
  7. 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
  8. bugku web基础$_POST
  9. ie6使用绝对定位position:absolute,box不显示
  10. LeetCode--75.颜色分类(三路快排,计数排序)
  11. 模拟实现死亡之Ping(Ping of death)
  12. fla 优化思路 flash cs6
  13. 13.STC15W408AS单片机SPI
  14. 如何将mkv转换mp4格式?
  15. kaminari 简要文档
  16. 半年学习tse的总结
  17. egret 使用EUI开发UI界面
  18. 说说转义字符 “\”
  19. java开发工具对比_Eclipse和STS哪个好_Java开发工具优缺点对比一览
  20. 【附白皮书下载】制造业数字化转型专家黄正杰:设备健康如何管理?

热门文章

  1. 浦发银行计算机笔试题库,2018浦发银行校园招聘笔试试题库
  2. 织梦模板不支持html,html中{}是什么样的模板?如何使用它?HTML5template模板标签是什么?html常用的字体样式是什么?dede后台文件为什么不能生成html?...
  3. 算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串“12345”,则输出整数“12345”
  4. 配置phoenix连接hbase_Phoenix视图映射
  5. 管理任务执行-有效执行
  6. Linux问题分析或解决_samba无法连接
  7. zoj 3811 untrusted patrol
  8. ASP.NET 程序优化
  9. OpenFileDialog 类的ShowDialog() 错误的解决
  10. numpy T、transpose()函数、swapaxes()函数