SQLCondition¶
- class deepfos.core.SQLCondition(fields=None, value_list=None, quote_char='`', **kwargs)¶
- SQL查询条件 - 记录SQL的查询条件,主要功能: - 输出对应的SQL查询语句 
- 进行不同条件的and运算 
- 取出部分字段条件 
 - 在这个类中,查询条件被分为两种: - 1.联合查询条件
- 指多个字段与一个值列表的值同时对应相等。例如有字段:f1, f2,值列表:f1 f2 1 4 2 5 3 6 联合查询条件即:(f1=1 and f2=4) or (f1=2 and f2=5) or (f1=3 and f2=6)
 - 2.固定查询条件:
- 除联合查询条件外,其余查询条件均归类为固定查询条件。例如:f1>=1, f2 in (1, 2, 3), f1!=2等等。
 - 参数
- fields – 联合查询字段 
- value_list – 联合查询的值列表 
- quote_char – 转义字符 
- **kwargs – 其余关键字参数,一般用于指定固定查询条件 
 
 - 示例 - >>> SQLCondition(fields=['a', 'b'], value_list=[[1, 4], [2, 5], [3, 6]]) (a=1 AND b=4) OR (a=2 AND b=5) OR (a=3 AND b=6) >>> # kwargs 部分也可以提供联合查询字段。 >>> SQLCondition(a=range(1, 4), b=range(4, 7)) (a=1 AND b=4) OR (a=2 AND b=5) OR (a=3 AND b=6) >>> # 同时,kwargs部分可以提供一些固定条件 >>> SQLCondition(a__eq=1, b__in=(1, 2), c__lt=2) `a`=1 AND `b` IN (1, 2) AND `c`<2 - 警告 - kwargs部分虽然也可以提供联合查询字段, 但是仅当- fields, value_list未提供时有效。 两者同时存在时,- kwargs的联合查询字段会被无视。- 注解 - 固定查询条件的入参规则为 - {字段名}__{条件字符}={值}所有支持的条件字符为:- 条件字符 - 全称 - 是否支持 - 字符串 - 数字,日期 - eq - equal - ✓ - ✓ - ne - not equal - ✓ - ✓ - in - in - ✓ - ✓ - ni - not in - ✓ - ✓ - lt - less than - × - ✓ - le - less equal - × - ✓ - gt - greater than - × - ✓ - ge - greater or equal - × - ✓ - 方法 - rename_field(field_map)- 重命名字段,将引起类中所有字符串缓存失效 - 将 固定查询条件 转换成符合 - Dataframe.query要求的字符串, 用于缓存查询。 联合查询条件 不在此输出。- to_sql([max_len])- 将所有查询条件转化为符合sql语法的查询条件字符串。 - 属性 - 查询条件涉及的所有字段 - 当前的 联合查询条件 模板 - 联合查询条件 的字段 - 固定查询条件 字符串