2

PEP8ガイドラインに従って、非常に長いSQLステートメントを変数にフォーマットするためのベストプラクティスは何でしょうか。

以下の例は、変数をどのように分割するかを示しています。

var= "some value"
query = "select a,b,c,d,e,f,g,h from a_very_long_tablename" +\
"where a_very_long_sql_statement='is_really_very_long' " +\
"or a_very_long_sql_statement='" + var + "' order by a"
4

4 に答える 4

6

三重引用符で囲まれた文字列を使用します。

query= """\
select a,b,c,d,e,f,g,h from a_very_long_tablename
where a_very_long_sql_statement='is_really_very_long'
or a_very_long_sql_statement='is_really_really_very_long'
"""

SQL は空白にとらわれない言語であり、スペースだけでなく改行も使用して区切ることができます。最初のバックスラッシュは最初の改行をエスケープします。個人的な好みですが、必要ありません。

本当に改行が必要ない場合は、文字列を括弧で囲みます。記号を使用する必要はありません+。Python が 1 つの長い文字列にするためです。

query = (
    "select a,b,c,d,e,f,g,h from a_very_long_tablename "
    "where a_very_long_sql_statement='is_really_very_long' "
    "or a_very_long_sql_statement='is_really_really_very_long'")
于 2012-10-10T17:38:38.223 に答える
4

次のコードを試してください。

query = """
SELECT a,b,c,d,e,f,g,h
FROM a_very_long_tablename
WHERE a_very_long_sql_statement='is_really_very_long
OR a_very_long_sql_statement='is_really_really_very_long
"""
于 2012-10-10T17:38:53.320 に答える
1

編集後、SQL クエリに変数を含めたい場合。

query = """
SELECT a,b,c,d,e,f,g,h
FROM a_very_long_tablename
WHERE a_very_long_sql_statement='is_really_very_long
OR a_very_long_sql_statement= %s
""" % var
于 2012-10-10T17:50:37.530 に答える
0

三重引用符'''フォーマット文字列を使用すると、読みやすくなります。

var= "some value"

query = '''
select a,b,c,d,e,f,g,h from a_very_long_tablename
where a_very_long_sql_statement='is_really_very_long'
or a_very_long_sql_statement="{var}" order by a
'''.format(var=var)
于 2015-06-18T15:49:35.347 に答える