mm_mysql 1.8.2 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/sql.js +38 -30
- package/test.js +23 -2
package/package.json
CHANGED
package/sql.js
CHANGED
|
@@ -483,7 +483,7 @@ Sql.prototype.toWhere = function(obj, like) {
|
|
|
483
483
|
where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
|
|
484
484
|
} else if (k.endWith('_has')) {
|
|
485
485
|
var vals = val.trim("'").split(',').map((o) => {
|
|
486
|
-
return
|
|
486
|
+
return "'" + o + "'"
|
|
487
487
|
});
|
|
488
488
|
where += " and " + escapeId(k.replace('_has', "")) + " in (" + vals.join(',') + ")";
|
|
489
489
|
} else if (k.endWith('_like')) {
|
|
@@ -509,7 +509,7 @@ Sql.prototype.toWhere = function(obj, like) {
|
|
|
509
509
|
where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
|
|
510
510
|
} else if (k.endWith('_has')) {
|
|
511
511
|
var vals = val.trim("'").split(',').map((o) => {
|
|
512
|
-
return
|
|
512
|
+
return "'" + o + "'"
|
|
513
513
|
});
|
|
514
514
|
where += " and " + escapeId(k.replace('_has', "")) + " in (" + vals.join(',') + ")";
|
|
515
515
|
} else if (k.endWith('_like')) {
|
|
@@ -622,10 +622,11 @@ Sql.prototype.add = function(item) {
|
|
|
622
622
|
/**
|
|
623
623
|
* @description 删除数据
|
|
624
624
|
* @param {Object} query 查询条件集合
|
|
625
|
+
* @param {Boolean} like 是否使用like匹配, 为空使用默认方式
|
|
625
626
|
* @return {Promise|Object} 执行结果
|
|
626
627
|
*/
|
|
627
|
-
Sql.prototype.del = function(query) {
|
|
628
|
-
var sql = this.toDelSql(query);
|
|
628
|
+
Sql.prototype.del = function(query, like) {
|
|
629
|
+
var sql = this.toDelSql(query, like);
|
|
629
630
|
return this.exec(sql);
|
|
630
631
|
};
|
|
631
632
|
|
|
@@ -633,10 +634,11 @@ Sql.prototype.del = function(query) {
|
|
|
633
634
|
* @description 修改数据
|
|
634
635
|
* @param {Object} query 查询条件集合
|
|
635
636
|
* @param {Object} item 修改的键值集合
|
|
637
|
+
* @param {Boolean} like 是否使用like匹配, 为空使用默认方式
|
|
636
638
|
* @return {Promise|Object} 执行结果
|
|
637
639
|
*/
|
|
638
|
-
Sql.prototype.set = function(query, item) {
|
|
639
|
-
var sql = this.toSetSql(query, item);
|
|
640
|
+
Sql.prototype.set = function(query, item, like) {
|
|
641
|
+
var sql = this.toSetSql(query, item, like);
|
|
640
642
|
return this.exec(sql);
|
|
641
643
|
};
|
|
642
644
|
|
|
@@ -705,26 +707,28 @@ Sql.prototype.addList = function(list, lock = true) {
|
|
|
705
707
|
/**
|
|
706
708
|
* @description 删除多条数据
|
|
707
709
|
* @param {Array} list 对象数组
|
|
710
|
+
* @param {Boolean} like 是否使用like匹配, 为空使用默认方式
|
|
708
711
|
* @return {Promise|Object} 执行结果
|
|
709
712
|
*/
|
|
710
|
-
Sql.prototype.delList = function(list) {
|
|
713
|
+
Sql.prototype.delList = function(list, like) {
|
|
711
714
|
var sql = "";
|
|
712
715
|
var len = list.length;
|
|
713
716
|
for (var i = 0; i < len; i++) {
|
|
714
|
-
sql += this.toDelSql(list[i].query);
|
|
717
|
+
sql += this.toDelSql(list[i].query, like);
|
|
715
718
|
}
|
|
716
719
|
return this.exec(sql);
|
|
717
720
|
};
|
|
718
721
|
/**
|
|
719
722
|
* @description 修改多条数据
|
|
720
723
|
* @param {Array} list 对象数组
|
|
724
|
+
* @param {Boolean} like 是否使用like匹配, 为空使用默认方式
|
|
721
725
|
* @return {Promise|Object} 执行结果
|
|
722
726
|
*/
|
|
723
|
-
Sql.prototype.setList = function(list) {
|
|
727
|
+
Sql.prototype.setList = function(list, like) {
|
|
724
728
|
var sql = "";
|
|
725
729
|
var len = list.length;
|
|
726
730
|
for (var i = 0; i < len; i++) {
|
|
727
|
-
sql += this.toSetSql(list[i].query, list[i].item);
|
|
731
|
+
sql += this.toSetSql(list[i].query, list[i].item, like);
|
|
728
732
|
}
|
|
729
733
|
return this.exec(sql);
|
|
730
734
|
};
|
|
@@ -917,25 +921,32 @@ Sql.prototype.model = function(model) {
|
|
|
917
921
|
var _this = this;
|
|
918
922
|
return new Proxy(model, {
|
|
919
923
|
set: function(obj, prop, value) {
|
|
920
|
-
if (
|
|
921
|
-
var
|
|
922
|
-
var
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
|
|
924
|
+
if (_this.key) {
|
|
925
|
+
var query = {};
|
|
926
|
+
var arr = _this.key.split(',');
|
|
927
|
+
for (var i = 0; i < arr.length; i++) {
|
|
928
|
+
var key = arr[i];
|
|
929
|
+
query[key] = obj[key];
|
|
930
|
+
}
|
|
931
|
+
if (typeof(value) === "number") {
|
|
932
|
+
var n = obj[prop];
|
|
933
|
+
var cha = value - n;
|
|
934
|
+
var where = _this.toWhere(query);
|
|
935
|
+
if (cha > 0) {
|
|
936
|
+
_this.setSql(where, "`" + prop + "` = `" +
|
|
937
|
+
prop + "` + " + cha);
|
|
938
|
+
} else if (cha < 0) {
|
|
939
|
+
_this.setSql(where, "`" + prop + "` = `" +
|
|
940
|
+
prop + "` - " + (-cha));
|
|
941
|
+
} else {
|
|
942
|
+
_this.setSql(where, "`" + prop + "` = " +
|
|
943
|
+
value);
|
|
944
|
+
}
|
|
929
945
|
} else {
|
|
930
|
-
|
|
931
|
-
|
|
946
|
+
var set = {};
|
|
947
|
+
set[prop] = value;
|
|
948
|
+
_this.set(query, set, false);
|
|
932
949
|
}
|
|
933
|
-
} else {
|
|
934
|
-
var query = {};
|
|
935
|
-
query[_this.key] = obj[_this.key];
|
|
936
|
-
var set = {};
|
|
937
|
-
set[prop] = value;
|
|
938
|
-
_this.set(query, set);
|
|
939
950
|
}
|
|
940
951
|
obj[prop] = value;
|
|
941
952
|
return obj;
|
|
@@ -960,9 +971,6 @@ Sql.prototype.getObj = async function(query, sort, view, like) {
|
|
|
960
971
|
view += "," + escapeId(key);
|
|
961
972
|
}
|
|
962
973
|
}
|
|
963
|
-
if (like === undefined) {
|
|
964
|
-
like = this.like;
|
|
965
|
-
}
|
|
966
974
|
var sql = this.toGetSql(query, sort, view, like);
|
|
967
975
|
var list = await this.run(sql);
|
|
968
976
|
if (list.length > 0) {
|
package/test.js
CHANGED
|
@@ -84,13 +84,34 @@ async function test() {
|
|
|
84
84
|
"password": "Asd159357"
|
|
85
85
|
});
|
|
86
86
|
sql.open();
|
|
87
|
-
|
|
87
|
+
|
|
88
88
|
db.table = "user_account";
|
|
89
|
+
db.key = "user_id,username";
|
|
90
|
+
var obj = await db.getObj({
|
|
91
|
+
user_id_has: "1"
|
|
92
|
+
});
|
|
93
|
+
obj.vip += 1;
|
|
94
|
+
// obj.vip -= 1;
|
|
95
|
+
console.log("语法", db.sql, obj);
|
|
96
|
+
|
|
97
|
+
obj.nickname = '管理员';
|
|
98
|
+
// obj.vip -= 1;
|
|
99
|
+
console.log("语法2", db.sql, obj);
|
|
100
|
+
|
|
89
101
|
var list = await db.get({
|
|
90
102
|
user_id_has: "1,2,a-3,4,5"
|
|
91
103
|
});
|
|
92
|
-
|
|
93
104
|
console.log("语法", db.sql, list.length);
|
|
105
|
+
|
|
106
|
+
var list = await db.get({
|
|
107
|
+
user_id: "1"
|
|
108
|
+
});
|
|
109
|
+
console.log("查询语法", db.sql, list.length);
|
|
110
|
+
|
|
111
|
+
var list = await db.get({
|
|
112
|
+
user_id: "1"
|
|
113
|
+
}, null, null, true);
|
|
114
|
+
console.log("模糊查询语法", db.sql, list.length);
|
|
94
115
|
}
|
|
95
116
|
test();
|
|
96
117
|
|