to_sql

SQLCondition.to_sql(max_len=10000000.0)

将所有查询条件转化为符合sql语法的查询条件字符串。

参数

max_len – 单次输出的条件字符串的最大长度

返回

查询条件字符串的生成器

引发

ValueError – 给定的max_len太小以至于无法产生sql语句

示例

>>> sc = SQLCondition(f1=range(1, 4), f2=range(4, 7), a__eq=1, b__in=(1, 2), c__lt=2)
>>> next(sc.to_sql())
'`a`=1 AND `b` IN (1, 2) AND `c`<2 AND ((f1=1 AND f2=4) OR (f1=2 AND f2=5) OR (f1=3 AND f2=6))'
>>> for sql in sc.to_sql(max_len=80):
...    print(sql)
`a`=1 AND `b` IN (1, 2) AND `c`<2 AND ((f1=1 AND f2=4) OR (f1=2 AND f2=5))
`a`=1 AND `b` IN (1, 2) AND `c`<2 AND ((f1=3 AND f2=6))