Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在sql查询中正确转义%s_Python_Mysql_Sql - Fatal编程技术网

Python 如何在sql查询中正确转义%s

Python 如何在sql查询中正确转义%s,python,mysql,sql,Python,Mysql,Sql,我有以下sql: sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog WHERE (artwork_url IS NULL OR artwork_url NOT LIKE '%s3-%') UNION ALL SELECT DISTINCT artwork_apple_url FROM main_collectioninstance WHERE (

我有以下sql:

sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE '%s3-%')
           UNION ALL
         SELECT DISTINCT artwork_apple_url FROM main_collectioninstance 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE '%s3-%')
      '''
cursor.execute(sql)
这给了我一个格式错误--如何在我的sql中获得
如%s3-%
s3
是Amazon url的一部分)。

如果使用,参数的引用将由DB适配器为您完成。它更简单,有助于防止SQL注入。请注意,适当的placemarker(例如
%s
)取决于您使用的DB适配器<代码>%s适用于MySQLdb,但例如,
是我们的sql使用的placemarker符号

sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
           UNION ALL
         SELECT DISTINCT artwork_apple_url FROM main_collectioninstance 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
      '''
cursor.execute(sql, ['%s3-%']*2)
如果使用,参数的引用将由DB适配器为您完成。它更简单,有助于防止SQL注入。请注意,适当的placemarker(例如
%s
)取决于您使用的DB适配器<代码>%s适用于MySQLdb,但例如,
是我们的sql使用的placemarker符号

sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
           UNION ALL
         SELECT DISTINCT artwork_apple_url FROM main_collectioninstance 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
      '''
cursor.execute(sql, ['%s3-%']*2)
如果使用,参数的引用将由DB适配器为您完成。它更简单,有助于防止SQL注入。请注意,适当的placemarker(例如
%s
)取决于您使用的DB适配器<代码>%s适用于MySQLdb,但例如,
是我们的sql使用的placemarker符号

sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
           UNION ALL
         SELECT DISTINCT artwork_apple_url FROM main_collectioninstance 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
      '''
cursor.execute(sql, ['%s3-%']*2)
如果使用,参数的引用将由DB适配器为您完成。它更简单,有助于防止SQL注入。请注意,适当的placemarker(例如
%s
)取决于您使用的DB适配器<代码>%s适用于MySQLdb,但例如,
是我们的sql使用的placemarker符号

sql = '''SELECT DISTINCT artwork_apple_url FROM main_catalog 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
           UNION ALL
         SELECT DISTINCT artwork_apple_url FROM main_collectioninstance 
         WHERE (artwork_url IS NULL OR artwork_url NOT LIKE %s)
      '''
cursor.execute(sql, ['%s3-%']*2)
从这里开始:

从这里开始:

从这里开始:


从这里开始:

非常感谢,这是正确的答案,按照您的建议与MySQLdb合作。非常感谢,这是正确的答案,按照您的建议与MySQLdb合作。非常感谢,这是正确的答案,按照您的建议与MySQLdb合作。非常感谢,这是正确的答案,并按照您的建议与MySQLdb合作。