mm_mysql 1.7.5 → 1.7.7
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/index.js +0 -1
- package/package.json +1 -1
- package/sql.js +43 -25
- package/test.js +17 -8
package/index.js
CHANGED
|
@@ -143,7 +143,6 @@ class Mysql {
|
|
|
143
143
|
$.log.debug("SQL:", sql);
|
|
144
144
|
}
|
|
145
145
|
// $this.conn.config.connectionConfig = false;
|
|
146
|
-
// console.log("测试", $this.conn.config.connectionConfig);
|
|
147
146
|
// 返回一个 Promise
|
|
148
147
|
return new Promise((resolve, reject) => {
|
|
149
148
|
$this.conn.getConnection(function(err, db) {
|
package/package.json
CHANGED
package/sql.js
CHANGED
|
@@ -192,12 +192,12 @@ Sql.prototype.toQuery = function(where, sort, view) {
|
|
|
192
192
|
sql += " WHERE " + where;
|
|
193
193
|
}
|
|
194
194
|
if (sort) {
|
|
195
|
-
sql += " ORDER BY " + sort.replace(/;/,
|
|
195
|
+
sql += " ORDER BY " + sort.replace(/;/, "");
|
|
196
196
|
}
|
|
197
197
|
sql = sql.replace("{0}", this.table).replace("{1}", view);
|
|
198
198
|
if (this.size && this.page) {
|
|
199
199
|
var start = this.size * (this.page - 1);
|
|
200
|
-
sql += " limit " + start +
|
|
200
|
+
sql += " limit " + start + "," + this.size;
|
|
201
201
|
}
|
|
202
202
|
return sql;
|
|
203
203
|
};
|
|
@@ -252,24 +252,41 @@ Sql.prototype.getSql = function(where, sort, view) {
|
|
|
252
252
|
* @param {String} set 修改的键值
|
|
253
253
|
* @return {Promise|Object} 执行结果
|
|
254
254
|
*/
|
|
255
|
-
Sql.prototype.addOrSetSql = async function(where, set) {
|
|
255
|
+
Sql.prototype.addOrSetSql = async function(where, set, like) {
|
|
256
256
|
if (!where || !set) {
|
|
257
257
|
return -1;
|
|
258
258
|
}
|
|
259
|
+
if (typeof(where) === "object") {
|
|
260
|
+
where = await this.toWhere(where);
|
|
261
|
+
}
|
|
259
262
|
var count = await this.countSql(where);
|
|
260
263
|
if (count === 0) {
|
|
261
|
-
var arr = set.split(',');
|
|
262
264
|
var key = "";
|
|
263
265
|
var value = "";
|
|
264
|
-
|
|
265
|
-
var
|
|
266
|
-
var
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
266
|
+
if (typeof(set) === "string") {
|
|
267
|
+
var arr = set.split(",");
|
|
268
|
+
for (var i = 0; i < arr.length; i++) {
|
|
269
|
+
var o = arr[i];
|
|
270
|
+
var ar = o.split('=');
|
|
271
|
+
if (ar.length === 2) {
|
|
272
|
+
key += "," + ar[0];
|
|
273
|
+
value += "," + ar[1];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
} else {
|
|
277
|
+
for (var k in set) {
|
|
278
|
+
key += "," + k;
|
|
279
|
+
var val = set[k];
|
|
280
|
+
if (val && typeof(val) === "string") {
|
|
281
|
+
val = val.trim("'");
|
|
282
|
+
}
|
|
283
|
+
value += "," + escape(val);
|
|
270
284
|
}
|
|
271
285
|
}
|
|
272
|
-
return await this.addSql(key.replace(
|
|
286
|
+
return await this.addSql(key.replace(",", ""), value.replace(",", ""));
|
|
287
|
+
}
|
|
288
|
+
if (typeof(set) === "object") {
|
|
289
|
+
set = await this.toSet(set);
|
|
273
290
|
}
|
|
274
291
|
return await this.setSql(where, set);
|
|
275
292
|
};
|
|
@@ -348,7 +365,7 @@ Sql.prototype.groupMathSql = async function(where, groupby, view, sort, method)
|
|
|
348
365
|
}
|
|
349
366
|
if (this.size && this.page) {
|
|
350
367
|
var start = this.size * (this.page - 1);
|
|
351
|
-
sql += " limit " + start +
|
|
368
|
+
sql += " limit " + start + "," + this.size;
|
|
352
369
|
}
|
|
353
370
|
return await this.run(sql);
|
|
354
371
|
}
|
|
@@ -457,13 +474,13 @@ Sql.prototype.toWhere = function(obj, like) {
|
|
|
457
474
|
}
|
|
458
475
|
val = escape(val);
|
|
459
476
|
if (k.endWith('_min')) {
|
|
460
|
-
where += " and " + escapeId(k.replace('_min',
|
|
477
|
+
where += " and " + escapeId(k.replace('_min', "")) + " >= " + val;
|
|
461
478
|
} else if (k.endWith('_max')) {
|
|
462
|
-
where += " and " + escapeId(k.replace('_max',
|
|
479
|
+
where += " and " + escapeId(k.replace('_max', "")) + " <= " + val;
|
|
463
480
|
} else if (k.endWith('_not')) {
|
|
464
|
-
where += " and " + escapeId(k.replace('_not',
|
|
481
|
+
where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
|
|
465
482
|
} else if (k.endWith('_has')) {
|
|
466
|
-
where += " and " + escapeId(k.replace('_has',
|
|
483
|
+
where += " and " + escapeId(k.replace('_has', "")) + " in (" + val.trim("'") + ")";
|
|
467
484
|
} else if (k.endWith('_like')) {
|
|
468
485
|
where += " and " + escapeId(k) + " LIKE '%" + val.trim("'") + "%'";
|
|
469
486
|
} else if (typeof(val) === "string" && !/^[0-9]+$/.test(val)) {
|
|
@@ -480,13 +497,13 @@ Sql.prototype.toWhere = function(obj, like) {
|
|
|
480
497
|
}
|
|
481
498
|
val = escape(val);
|
|
482
499
|
if (k.endWith('_min')) {
|
|
483
|
-
where += " and " + escapeId(k.replace('_min',
|
|
500
|
+
where += " and " + escapeId(k.replace('_min', "")) + " >= " + val;
|
|
484
501
|
} else if (k.endWith('_max')) {
|
|
485
|
-
where += " and " + escapeId(k.replace('_max',
|
|
502
|
+
where += " and " + escapeId(k.replace('_max', "")) + " <= " + val;
|
|
486
503
|
} else if (k.endWith('_not')) {
|
|
487
|
-
where += " and " + escapeId(k.replace('_not',
|
|
504
|
+
where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
|
|
488
505
|
} else if (k.endWith('_has')) {
|
|
489
|
-
where += " and " + escapeId(k.replace('_has',
|
|
506
|
+
where += " and " + escapeId(k.replace('_has', "")) + " in (" + val.trim("'") + ")";
|
|
490
507
|
} else if (k.endWith('_like')) {
|
|
491
508
|
where += " and " + escapeId(k) + " LIKE '%" + val.trim("'") + "%'";
|
|
492
509
|
} else {
|
|
@@ -511,10 +528,10 @@ Sql.prototype.toSet = function(obj) {
|
|
|
511
528
|
}
|
|
512
529
|
val = escape(val);
|
|
513
530
|
if (k.endWith('_add')) {
|
|
514
|
-
var k2 = escapeId(k.replace('_add',
|
|
531
|
+
var k2 = escapeId(k.replace('_add', ""));
|
|
515
532
|
set += "," + k2 + " = " + k2 + " + " + val;
|
|
516
533
|
} else if (k.endWith('_del')) {
|
|
517
|
-
var k3 = escapeId(k.replace('_del',
|
|
534
|
+
var k3 = escapeId(k.replace('_del', ""));
|
|
518
535
|
set += "," + k3 + " = " + k3 + " - " + val;
|
|
519
536
|
} else {
|
|
520
537
|
set += "," + escapeId(k) + " = " + val;
|
|
@@ -591,6 +608,7 @@ Sql.prototype.add = function(item) {
|
|
|
591
608
|
var sql = this.toAddSql(item);
|
|
592
609
|
return this.exec(sql);
|
|
593
610
|
};
|
|
611
|
+
|
|
594
612
|
/**
|
|
595
613
|
* @description 删除数据
|
|
596
614
|
* @param {Object} query 查询条件集合
|
|
@@ -633,7 +651,7 @@ Sql.prototype.get = function(query, sort, view, like = true) {
|
|
|
633
651
|
* @return {Promise|Object} 执行结果
|
|
634
652
|
*/
|
|
635
653
|
Sql.prototype.addOrSet = async function(where, set, like) {
|
|
636
|
-
return await this.addOrSetSql(
|
|
654
|
+
return await this.addOrSetSql(where, set, like);
|
|
637
655
|
};
|
|
638
656
|
|
|
639
657
|
/**
|
|
@@ -712,7 +730,7 @@ Sql.prototype.has_param = function(paramDt, sqlDt) {
|
|
|
712
730
|
var bl = false;
|
|
713
731
|
for (var key in sqlDt) {
|
|
714
732
|
var value = paramDt[key];
|
|
715
|
-
if (value !== undefined && value !== null && value !==
|
|
733
|
+
if (value !== undefined && value !== null && value !== "") {
|
|
716
734
|
bl = true;
|
|
717
735
|
break;
|
|
718
736
|
}
|
|
@@ -765,7 +783,7 @@ Sql.prototype.tpl_query = function(paramDt, sqlDt) {
|
|
|
765
783
|
var l = this.config.separator;
|
|
766
784
|
if (l) {
|
|
767
785
|
for (var key in paramDt) {
|
|
768
|
-
var value = paramDt[key] +
|
|
786
|
+
var value = paramDt[key] + "";
|
|
769
787
|
var arr = value.split(l);
|
|
770
788
|
var tpl = sqlDt[key];
|
|
771
789
|
if (tpl) {
|
package/test.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
const Mysql = require('./index.js').Mysql;
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
// function test() {
|
|
5
|
+
// var setSql = "`nickname`='hao,1,2,3',`gm`=5,`mc`=2,`group`='2,3'";
|
|
6
|
+
// var mh = setSql.match(/'.*'/);
|
|
7
|
+
// console.log(mh);
|
|
8
|
+
// }
|
|
9
|
+
// test();
|
|
10
|
+
// return
|
|
3
11
|
// var sql = new Mysql();
|
|
4
12
|
// sql.setConfig({
|
|
5
13
|
// multipleStatements: true
|
|
@@ -87,22 +95,23 @@ async function test_tpl_get() {
|
|
|
87
95
|
db.size = 5;
|
|
88
96
|
var query_str = db.tpl_query(query, tpl.query);
|
|
89
97
|
ret = await db.getCountSql(query_str, "`user_id` desc", "*");
|
|
90
|
-
|
|
98
|
+
|
|
91
99
|
console.log('查询结果', ret);
|
|
92
100
|
console.log('SQL语句', db.sql);
|
|
93
|
-
|
|
101
|
+
|
|
94
102
|
var o = ret.list[0];
|
|
95
103
|
// console.log("查询结果", o);
|
|
96
|
-
//
|
|
104
|
+
// o.user_id = await db.count() + 1;
|
|
105
|
+
o.nickname = o.nickname + ",6,7";
|
|
97
106
|
o.gm = "'5";
|
|
98
107
|
// // await db.add(o);
|
|
99
|
-
await db.set({
|
|
100
|
-
user_id: o.user_id
|
|
101
|
-
}, o);
|
|
102
|
-
// await db.addOrSet({
|
|
108
|
+
// await db.set({
|
|
103
109
|
// user_id: o.user_id
|
|
104
110
|
// }, o);
|
|
105
|
-
|
|
111
|
+
await db.addOrSet({
|
|
112
|
+
user_id: o.user_id
|
|
113
|
+
}, o);
|
|
114
|
+
// console.log(db.sql);
|
|
106
115
|
|
|
107
116
|
ret = await db.groupSumSql(query_str, "mc", "gm");
|
|
108
117
|
console.log('求和查询结果', ret);
|