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.
Files changed (4) hide show
  1. package/index.js +0 -1
  2. package/package.json +1 -1
  3. package/sql.js +43 -25
  4. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_mysql",
3
- "version": "1.7.5",
3
+ "version": "1.7.7",
4
4
  "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
5
  "main": "index.js",
6
6
  "scripts": {
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 + ',' + this.size;
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
- for (var i = 0; i < arr.length; i++) {
265
- var o = arr[i];
266
- var ar = o.split('=');
267
- if (ar.length === 2) {
268
- key += "," + ar[0];
269
- value += "," + ar[1];
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(',', ''), value.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 + ',' + this.size;
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', '')) + " >= " + val;
477
+ where += " and " + escapeId(k.replace('_min', "")) + " >= " + val;
461
478
  } else if (k.endWith('_max')) {
462
- where += " and " + escapeId(k.replace('_max', '')) + " <= " + val;
479
+ where += " and " + escapeId(k.replace('_max', "")) + " <= " + val;
463
480
  } else if (k.endWith('_not')) {
464
- where += " and " + escapeId(k.replace('_not', '')) + " != " + val;
481
+ where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
465
482
  } else if (k.endWith('_has')) {
466
- where += " and " + escapeId(k.replace('_has', '')) + " in (" + val.trim("'") + ")";
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', '')) + " >= " + val;
500
+ where += " and " + escapeId(k.replace('_min', "")) + " >= " + val;
484
501
  } else if (k.endWith('_max')) {
485
- where += " and " + escapeId(k.replace('_max', '')) + " <= " + val;
502
+ where += " and " + escapeId(k.replace('_max', "")) + " <= " + val;
486
503
  } else if (k.endWith('_not')) {
487
- where += " and " + escapeId(k.replace('_not', '')) + " != " + val;
504
+ where += " and " + escapeId(k.replace('_not', "")) + " != " + val;
488
505
  } else if (k.endWith('_has')) {
489
- where += " and " + escapeId(k.replace('_has', '')) + " in (" + val.trim("'") + ")";
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(this.toWhere(where, like), this.toSet(set));
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
- // // o.user_id = await db.count() + 1;
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
- console.log(db.sql);
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);