Python 如何在sql查询中正确转义%s
我有以下sql: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 = '''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合作。