在反引号里怎么使用反引号

有个需求需要在反引号

`   `

里面使用反引号 比如我要在里面写sql语句, sql中 用 例如 t.type 字段有时候要用反引号括起来防止和关键字冲突
但是 反引号

 `   `

在go里不清楚 怎么样才能包含转义的反引号, 用双引号" " 的话不能换行所以写sql比较麻烦。
请问大家有什么好的解决方式吗?

已邀请:

SuperFashi - To code or be coded, that's a question.

赞同来自: tupunco 浅小笑

没有办法。因为反引号就是代表原字符串,其会忽略除反引号之外的所有特殊字符,因此反引号是无法不忽略的(因为没有转义字符)。唯一的办法:

fmt.Println((`back ` + "`" + ` quote`))

tupunco

赞同来自: itfanr

按官方文档的说法确实没办法: The Go Programming Language Specification#String_literals Raw string literals are character sequences between back quotes, as in foo. Within the quotes, any character may appear except back quote. ...

tmac33

赞同来自:

fmt.Println((`back ` + "`" + ` quote`))

h12 - https://h12.io/about

赞同来自:

楼上都是正解,不过从另一个角度考虑这个问题,可以开启MySQL的SET sql_mode='ANSI_QUOTES'。这样就避免使用backtick而改用双引号包SQL关键字。

参考: https://dev.mysql.com/doc/refman/8.0/en/identifiers.html

要回复问题请先登录注册