def build(self, expression: LikeCondition, params={}): operator = Handler.strToUpper(expression.getOperator()) column = expression.getColumn() values = expression.getValue() escape = expression.escapingReplacements() if not values: return "0=1" self.addParams(values) return column + " " + operator + " " + "%s"
def createConditionFromArray(self, condition): if isinstance(condition, list) and Handler.list_get( condition, 0, None): operator = Handler.strToUpper(condition.pop(0)) if self._conditionClasses.get(operator, None): className = self._conditionClasses.get(operator) else: className = SimpleCondition return className.fromArrayDefinition(operator, condition) # 字典类型 {"key": "value"} return HashCondition(condition)
def build(self, expression: InCondition, params={}): operator = Handler.strToUpper(expression.getOperator()) column = expression.getColumn() values = expression.getValues() if not column: return "0=1" if operator == "IN" else "" for index, val in enumerate(values): values[index] = "%s" self.addParams(val) valuesStr = "(" + ",".join(values) + ")" return column + " " + operator + " " + valuesStr