【问题标题】:How to add a third single quote in a python variable?如何在 python 变量中添加第三个单引号?
【发布时间】:2021-10-12 11:48:19
【问题描述】:

我正在使用 pyodbc 和 python。 我的目标是更新数据库中的一列,以便在开头删除方括号和单引号。我想直接用python调用的sql命令来做。

我想在sql中做的是:

UPDATE [dbo].[Artist]
SET ARTIST = REPLACE(ARTIST, '[''', '')

由于引号,我无法在 python 变量中编写语句。我写的是这样的:

sql_delete_square_brackets = '''
UPDATE [dbo].[Artist]
SET ARTIST = REPLACE(ARTIST, '['', '')
'''

显然不起作用(缺少引号)

我该怎么写?

【问题讨论】:

    标签: python sql pyodbc


    【解决方案1】:

    您总是可以尝试混合使用双引号和单引号: 像这样:

    sql_delete_square_brackets = """
    UPDATE [dbo].[Artist]
    SET ARTIST = REPLACE(ARTIST, '['', '')
    """
    

    如果你的数据库允许,像这样:

    sql_delete_square_brackets = """
    UPDATE [dbo].[Artist]
    SET ARTIST = REPLACE(ARTIST, "['", "")
    """
    

    【讨论】:

      【解决方案2】:

      在 MS SQL Server(和许多其他 SQL 方言)的 T-SQL 中,字符串文字中的单引号只是加倍,例如

      INSERT INTO person (lastname) VALUES ('O''Rourke')
      

      所以我怀疑在你的情况下你可以使用

      sql_delete_square_brackets = """\
      UPDATE [dbo].[Artist]
      SET ARTIST = REPLACE(ARTIST, '[''', '')
      """
      

      请注意,python 字符串使用""" 而不是'''。我们通常在 Python 代码中对 SQL 语句使用双引号,正是因为我们可能希望在其中使用单引号(SQL 字符串文字)。

      【讨论】:

        猜你喜欢
        • 2016-08-07
        • 2017-12-17
        • 1970-01-01
        • 2012-06-02
        • 1970-01-01
        • 2017-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多