forked from mirror/gorm
Refactor getInterfaceAsSql
This commit is contained in:
parent
828bf5d5fd
commit
b32c5badd2
49
search.go
49
search.go
|
@ -1,6 +1,6 @@
|
||||||
package gorm
|
package gorm
|
||||||
|
|
||||||
import "strconv"
|
import "fmt"
|
||||||
|
|
||||||
type search struct {
|
type search struct {
|
||||||
db *DB
|
db *DB
|
||||||
|
@ -125,54 +125,15 @@ func (s *search) table(name string) *search {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *search) getInterfaceAsSql(value interface{}) (str string) {
|
func (s *search) getInterfaceAsSql(value interface{}) (str string) {
|
||||||
var s_num int64
|
|
||||||
var u_num uint64
|
|
||||||
var isString, unsigned bool = false, false
|
|
||||||
|
|
||||||
switch value.(type) {
|
switch value.(type) {
|
||||||
case string:
|
case string, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:
|
||||||
str = value.(string)
|
str = fmt.Sprintf("%v", value)
|
||||||
isString = true
|
|
||||||
case int:
|
|
||||||
s_num = int64(value.(int))
|
|
||||||
case int8:
|
|
||||||
s_num = int64(value.(int8))
|
|
||||||
case int16:
|
|
||||||
s_num = int64(value.(int16))
|
|
||||||
case int32:
|
|
||||||
s_num = int64(value.(int32))
|
|
||||||
case int64:
|
|
||||||
s_num = int64(value.(int64))
|
|
||||||
case uint:
|
|
||||||
u_num = uint64(value.(uint))
|
|
||||||
unsigned = true
|
|
||||||
case uint8:
|
|
||||||
u_num = uint64(value.(uint8))
|
|
||||||
unsigned = true
|
|
||||||
case uint16:
|
|
||||||
u_num = uint64(value.(uint16))
|
|
||||||
unsigned = true
|
|
||||||
case uint32:
|
|
||||||
u_num = uint64(value.(uint32))
|
|
||||||
unsigned = true
|
|
||||||
case uint64:
|
|
||||||
u_num = uint64(value.(uint64))
|
|
||||||
unsigned = true
|
|
||||||
default:
|
default:
|
||||||
s.db.err(InvalidSql)
|
s.db.err(InvalidSql)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !isString {
|
if str == "-1" {
|
||||||
if unsigned {
|
return ""
|
||||||
str = strconv.FormatUint(u_num, 10)
|
|
||||||
} else {
|
|
||||||
if s_num < 0 {
|
|
||||||
str = ""
|
|
||||||
} else {
|
|
||||||
str = strconv.FormatInt(s_num, 10)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue