コード例 #1
0
    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"
コード例 #2
0
    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)
コード例 #3
0
    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