• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在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中GROUP_CONCAT的使用方法实例分析
    • python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
    • 如何修改Mysql中group_concat的长度限制
    上一篇:使用Grafana+Prometheus监控mysql服务性能
    下一篇:MySQL处理重复数据的学习笔记
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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