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

 更新时间:2020年03月02日 10:42:35   作者:jcpp9527  
今天小编就为大家分享一篇在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里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL主从同步原理介绍

    MySQL主从同步原理介绍

    这篇文章主要介绍了MySQL主从同步原理介绍,本文讲解了主从同步概述、主从同步需求、主从同步过程等内容,需要的朋友可以参考下
    2015-07-07
  • Mysql如何在linux中实现定时备份

    Mysql如何在linux中实现定时备份

    这篇文章主要介绍了Mysql如何在linux中实现定时备份,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MySQL数据同步到Doris的四种方式

    MySQL数据同步到Doris的四种方式

    这篇文章给大家介绍了MySQL数据同步到Doris的四种方式,CSV文件方式,JDBC 编码方式,JDBC Catalog 方式和Binlog Load 方式,并通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • MySQL使用Partition功能实现水平分区的策略

    MySQL使用Partition功能实现水平分区的策略

    这篇文章主要介绍了MySQL使用Partition功能实现水平分区,给大家提到了水平分区的5种策略,通过sql语句给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • mysql5.7 设置远程访问的实现

    mysql5.7 设置远程访问的实现

    这篇文章主要介绍了mysql5.7 设置远程访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Mysql实现主从配置和多主多从配置

    Mysql实现主从配置和多主多从配置

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。必然会想到假设服务器群,来分担主数据库的压力。今天总结一下利用MySQL主从配置,减轻数据库压力
    2021-06-06
  • 关于MySQL Memory存储引擎的相关知识

    关于MySQL Memory存储引擎的相关知识

    这篇文章主要介绍了关于MySQL Memory存储引擎的相关知识,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • mysql技巧之select count的区别分析

    mysql技巧之select count的区别分析

    在工作过程中,时不时会有开发咨询几种select count()的区别,我总会告诉他们使用select count(*) 就好。下文我会展示几种sql的执行计划来说明为啥是这样。
    2013-08-08
  • MySQL之union和union all的使用及区别说明

    MySQL之union和union all的使用及区别说明

    这篇文章主要介绍了MySQL之union和union all的使用及区别说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 基于JPQL实现纯SQL语句方法详解

    基于JPQL实现纯SQL语句方法详解

    这篇文章主要介绍了基于JPQL实现纯SQL语句方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论