api2sql基础的能力 #8
							
								
								
									
										39
									
								
								option.go
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								option.go
									
									
									
									
									
								
							@ -9,7 +9,11 @@ package database
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"git.zhangdeman.cn/zhangdeman/consts"
 | 
			
		||||
	"git.zhangdeman.cn/zhangdeman/op_type"
 | 
			
		||||
	"git.zhangdeman.cn/zhangdeman/serialize"
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
@ -508,3 +512,38 @@ func parseInSql(fieldValue any) (string, []any) {
 | 
			
		||||
	}
 | 
			
		||||
	return strings.Join(placeholderList, ","), dataList
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithAnyCondition 设置任意查询条件, 仅 where 子句 in / not in / like / not like / == / !=
 | 
			
		||||
//
 | 
			
		||||
// Author : go_developer@163.com<白茶清欢>
 | 
			
		||||
//
 | 
			
		||||
// Date : 14:48 2024/8/23
 | 
			
		||||
func WithAnyCondition(column string, operate string, value any) (SetOption, error) {
 | 
			
		||||
	if nil == value {
 | 
			
		||||
		return nil, errors.New("value is nil")
 | 
			
		||||
	}
 | 
			
		||||
	switch operate {
 | 
			
		||||
	case consts.WhereOperateEqual:
 | 
			
		||||
		return WithWhere(map[string]any{column: value}), nil
 | 
			
		||||
	case consts.WhereOperateNotEqual:
 | 
			
		||||
		return WithNotEqual(column, value), nil
 | 
			
		||||
	case consts.WhereOperateIn:
 | 
			
		||||
		var target []any
 | 
			
		||||
		if err := serialize.JSON.Transition(value, &target); nil != err {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return WithIn[[]any](column, target), nil
 | 
			
		||||
	case consts.WhereOperateNotIn:
 | 
			
		||||
		var target []any
 | 
			
		||||
		if err := serialize.JSON.Transition(value, &target); nil != err {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return WithNotIn[[]any](column, target), nil
 | 
			
		||||
	case consts.WhereOperateLike:
 | 
			
		||||
		return WithLike(column, fmt.Sprintf("%v", value)), nil
 | 
			
		||||
	case consts.WhereOperateNotLike:
 | 
			
		||||
		return WithNotLike(column, fmt.Sprintf("%v", value)), nil
 | 
			
		||||
	default:
 | 
			
		||||
		return nil, errors.New(operate + " : operate is not support")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user