|
@@ -74,7 +74,8 @@ func (m *Mysql) Insert(tableName string, data map[string]interface{}) int64 {
|
|
|
}
|
|
|
|
|
|
/*不等于 map[string]string{"ne":"1"}
|
|
|
- *
|
|
|
+ *字段为空 map[string]string{"name":"$isNull"}
|
|
|
+ *字段不为空 map[string]string{"name":"$isNotNull"}
|
|
|
*/
|
|
|
func (m *Mysql) Find(tableName string, query map[string]interface{}, fields, order string, start, pageSize int) *[]map[string]interface{} {
|
|
|
fs := []string{}
|
|
@@ -90,8 +91,14 @@ func (m *Mysql) Find(tableName string, query map[string]interface{}, fields, ord
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- fs = append(fs, fmt.Sprintf("%s=?", k))
|
|
|
- vs = append(vs, v)
|
|
|
+ if v == "$isNull" {
|
|
|
+ fs = append(fs, fmt.Sprintf("%s is null", k))
|
|
|
+ } else if v == "$isNotNull" {
|
|
|
+ fs = append(fs, fmt.Sprintf("%s is not null", k))
|
|
|
+ } else {
|
|
|
+ fs = append(fs, fmt.Sprintf("%s=?", k))
|
|
|
+ vs = append(vs, v)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
var buffer bytes.Buffer
|
|
@@ -241,11 +248,18 @@ func (m *Mysql) Count(tableName string, query map[string]interface{}) int64 {
|
|
|
fields := []string{}
|
|
|
values := []interface{}{}
|
|
|
for k, v := range query {
|
|
|
- fields = append(fields, fmt.Sprintf("%s=?", k))
|
|
|
- values = append(values, v)
|
|
|
+ if v == "$isNull" {
|
|
|
+ fields = append(fields, fmt.Sprintf("%s is null", k))
|
|
|
+ } else if v == "$isNotNull" {
|
|
|
+ log.Println("xxxx")
|
|
|
+ fields = append(fields, fmt.Sprintf("%s is not null", k))
|
|
|
+ } else {
|
|
|
+ fields = append(fields, fmt.Sprintf("%s=?", k))
|
|
|
+ values = append(values, v)
|
|
|
+ }
|
|
|
}
|
|
|
q := fmt.Sprintf("select count(1) as count from %s", tableName)
|
|
|
- if len(values) > 0 {
|
|
|
+ if len(query) > 0 {
|
|
|
q += fmt.Sprintf(" where %s", strings.Join(fields, " and "))
|
|
|
}
|
|
|
log.Println(q, values)
|