如何将两个字符串连接为Python中的SQL命令分隔的两个字符串?

问题描述 投票:0回答:2

可能,我的问题听起来很奇怪!但是,我需要在Python中使用此SQL查询:

cursor.execute("SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = 'TEST' ")

自'TEST'架构更改后,我需要一个类似的查询:

schema_name = 'TEST'
cursor.execute(" SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = " + str(schema_name))

但这一行的输出将是:

'SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = TEST'

不:

“SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME ='TEST'”

需要什么。

我将非常感谢你的帮助。

python sql-server string
2个回答
1
投票

你可以用另一对引号包装'TEST',即使用'"TEST"'

更好的是,使用'TEST'插入str.format

>>> schema_name = 'TEST'
>>> 'blablabla "{}"'.format(schema_name)
'blablabla "TEST"'

2
投票

这是相当基本的SQL实践。永远不要像这样连接字符串。

对于您的情况,最好的方法是:

schema_name = 'TEST'
cursor.execute("SELECT TABLE_NAME AS TABLE FROM M_CS_TABLES WHERE SCHEMA_NAME = %s", schema_name)

http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries

© www.soinside.com 2019 - 2024. All rights reserved.