我正在尝试找到格式化sql查询字符串的最佳方法。在调试应用程序时,我想记录所有sql查询字符串的文件,正确设置字符串的格式很重要。
选项1
def myquery():
sql = "select field1, field2, field3, field4 from table where condition1=1 and condition2=2"
con = mymodule.get_connection()
...
- 这对于打印sql字符串很有用。
- 如果字符串太长且不适合80个字符的标准宽度,则不是一个好的解决方案。
选项2
def query():
sql = """
select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
这里的代码很清楚,但是当您打印sql查询字符串时,会得到所有这些烦人的空格。
的u '\ n选取FIELD1,FIELD2,字段3,字段4 \ N_ _ ___ 从表\ n _ ___ 其中条件1 = 1 \ n _ ___ _and条件2 = 2'
注意:我用下划线替换了空格_
,因为它们是由编辑器修剪的
选项3
def query():
sql = """select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
- 我不喜欢此选项,因为它破坏了列表格式良好的代码的清晰度。
选项4
def query():
sql = "select field1, field2, field3, field4 " \
"from table " \
"where condition1=1 " \
"and condition2=2 "
con = mymodule.get_connection()
...
- 我不喜欢此选项,因为每一行都需要额外输入,而且很难编辑查询。
对我来说,最好的解决方案是选项2,但我不喜欢在打印sql字符串时使用多余的空格。
您还知道其他选择吗?