当前位置: 首页 > 编程笔记 >

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

夏兴平
2023-03-14
本文向大家介绍在MySQL concat里面使用多个单引号,三引号的问题,包括了在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里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 当我想在Python中执行命令并且需要使用引号时,我不知道如何在不关闭字符串的情况下执行该命令。 例如: 但是,当我尝试执行上面的操作时,我最终关闭了字符串,并且无法将需要的单词放在引号之间。 我怎样才能做到这一点? 问题答案: 您可以通过以下三种方式之一进行操作: 一起使用单引号和双引号: 转义字符串中的双引号: 使用三引号引起来的字符串:

  • 问题内容: 我正在尝试学习编写查询的最佳方法。我也了解保持一致的重要性。到现在为止,我在没有任何实际考虑的情况下随机使用单引号,双引号和反引号。 例: 另外,在上述例子中,考虑到,,等可以是变量。 这是什么标准?你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎没有确切的答案。 问题答案: 反引号用于表和列标识符,但是仅当标识符是MySQL保留关键字时,或者当标识符包含空格字符

  • 问题内容: 首先,我经历了相关的问题..尚未找到任何答案..我正在使用此代码显示消息 我该如何做这项工作,因为此回声内的任何引号都会破坏该语句… 问题答案: 可以使用反斜杠对引号进行转义,也可以使用双引号来指定字符串。

  • 问题内容: 当我想在Python中执行命令并且需要使用引号时,我不知道如何在不关闭字符串的情况下执行该命令。 例如: 但是,当我尝试执行上面的操作时,我最终关闭了字符串,并且无法将需要的单词放在引号之间。 我怎样才能做到这一点? 问题答案: 你可以通过以下三种方式之一进行操作: 1)一起使用单引号和双引号: 2)转义字符串中的双引号: 3)使用三引号引起来的字符串:

  • 问题内容: 这是需要执行的代码块: 此块用Java代码形成。在执行时,这将引发异常 org.springframework.jdbc.BadSqlGrammarException 。但是当我更改为它时,执行成功。 这是我的问题: 1)为什么在我使用单引号时会引发异常? 2)单引号和双引号“单引号”有什么区别? 3)如果我始终使用双“单引号”,会不会有任何后果? 问题答案: 从Oracle文档中获取

  • 我目前正在使用一个替换脚本来自动修复单引号和双引号。 但是,我找不到一个解决方案来更改嵌套在另一个双引号内的任何地方的双引号 “在'abc'开头和结尾有一些额外的文本” 目前,我只能自动修复这个类型,如果它在其他引号旁边(例如“abc”)使用一个简单的替换脚本 和

  • 我有以下字符串。它是度、分、秒格式的LatLongs,可以按如下方式输入:

  • 问题内容: 手动编写HTML时,我总是使用单引号。我使用很多渲染的HTML,这些HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗? 两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗? 问题答案: W3组织说: 默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)