在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在动态拼接字符串时,我们常会用到字符拼接,我对拼接的引号不理解,如: 1、'''+ id +''' 为什么是3个引号,为什么左边一个加号右边一个加号(能不能着重帮我解释下这个,详细点) SQL code
正常语句: SQL code
简答: 简单的来说一般单引号是拼接语句用的,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字段即是带单双引号的字符串
以上这篇在MySQL concat里面使用多个单引号,三引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持极客世界。 |
请发表评论