MySQL中相当于Python三重引号字符串的是什么?

2 投票
1 回答
1803 浏览
提问于 2025-04-18 07:45

在Python中,我可以使用三重引号的字符串,这样就可以轻松定义包含 '、反引号或 " 的字符串,而不需要担心这些符号的问题:

hello = """    
            This string is bounded by triple double quotes (3 times ").
        Unescaped newlines in the string are retained, though 
        it is still possible to use all normal escape sequences.

            Whitespace at the beginning of a line is
        significant.  

            This string ends in a newline.
        """

在PHP中,我可以使用heredoc(也就是 <<<)来做到这一点:

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

那么在MySQL中,我该怎么做呢?现在我必须确保对我用来分隔的字符进行转义,比如如果我用 ' 作为分隔符,我在字符串中就得写成 \'

UPDATE article
SET article_text ='
Extra-virgin olive oil is a staple in any chef\'s kitchen.
'

我希望能够像这样做:

UPDATE article
SET article_text ='''
Extra-virgin olive oil is a staple in any chef's kitchen.
'''

1 个回答

3

你可以用两个单引号连在一起('')来代替用反斜杠转义单引号(\')。

除了用两个单引号之外,我知道的没有更简单的方法了。也没有类似于"""的东西,这点挺遗憾的。

不过,如果你想省时间,最好的办法是完全不使用任何基于SQL的解决方案;通常情况下,数据库是通过用其他语言写的程序来访问的,或者是通过用其他语言生成的SQL脚本来访问的,正如这里提到的。

我还没有遇到过一种编程语言不支持预处理语句,而且至少都有一些SQL转义函数来方便使用。

撰写回答