yjp 1 年間 前
コミット
1cc86bbc75
1 ファイル変更17 行追加6 行削除
  1. 17 6
      framework/core/infrastructure/database/sql/conditions.go

+ 17 - 6
framework/core/infrastructure/database/sql/conditions.go

@@ -207,19 +207,30 @@ func (conditions *Conditions) Args() []any {
 // 返回值:
 // - 构造的AND条件语句
 func (conditions *Conditions) And() string {
+	return conditions.formClause("AND")
+}
+
+// OR 获取构造的OR条件语句
+// 参数: 无
+// 返回值:
+// - 构造的AND条件语句
+func (conditions *Conditions) OR() string {
+	return conditions.formClause("OR")
+}
+
+func (conditions *Conditions) formClause(conditionOperator string) string {
 	if conditions.queries == nil || len(conditions.queries) == 0 {
 		return ""
 	}
 
 	stringBuilder := strings.Builder{}
-	stringBuilder.WriteString("WHERE ")
-
-	for _, query := range conditions.queries {
+	for i, query := range conditions.queries {
 		stringBuilder.WriteString(query)
-		stringBuilder.WriteString(" AND ")
-	}
 
-	stringBuilder.WriteString("1 = 1")
+		if i != len(conditions.queries)-1 {
+			stringBuilder.WriteString(" " + conditionOperator + " ")
+		}
+	}
 
 	return stringBuilder.String()
 }