diff --git a/History.md b/History.md index 1cfe9b0..16f5dcc 100644 --- a/History.md +++ b/History.md @@ -1,10 +1,13 @@ -# 3.0.1 / 2018-06-05 +# 3.0.2 / 2018-06-21 +* 修复filter解析空条件异常的bug; +* table方法支持 AS 别名。 + +# 3.0.1 / 2018-06-05 * 修复filter解析的一个bug # 3.0.0 / 2018-04-16 - > 这是一个全新的大版本, 不向下兼容 2.x。 * 重构 API, 使用链式操作, 逻辑更加清晰 @@ -13,32 +16,32 @@ * 新增 tableCreate/dbCreate 方法, 支持创建数据库/数据表 * 新增 indexCreate/indexDrop/indexList, 支持对索引的增删改查 -# 2.2.2 / 2018-03-22 +# 2.2.2 / 2018-03-22 * 增加时区和 BIGINT 配置 -# 2.2.0 / 2018-03-15 +# 2.2.0 / 2018-03-15 * 连接池增加失败移除配置和恢复时间 -# 2.1.3 / 2018-03-14 +# 2.1.3 / 2018-03-14 * 优化异常输出 -# 2.1.2 / 2018-03-06 +# 2.1.2 / 2018-03-06 * Bug 修复 * 修改连接方式 * 异常返回的格式改为对象 -# 2.1.0 / 2018-03-03 +# 2.1.0 / 2018-03-03 * 大重构, 更加简练, 结构也更加合理 -# 2.0.1 / 2017-05-22 +# 2.0.1 / 2017-05-22 * 优化一处由于 js 对象引用类型引起的混乱 -# 2.0.0 / 2017-02-26 +# 2.0.0 / 2017-02-26 * new project diff --git a/lib/utils.js b/lib/utils.js index 3153f0c..82cd838 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -113,6 +113,9 @@ function parse$opt(opt) { // 格式化表名 function fixtable(name) { + if (/ AS /i.test(name)) { + return name + } return name .split('.') .map(it => { @@ -150,22 +153,31 @@ const parser = { }, filter(opt) { + let sql = '' + if (!sql) { + return ' ' + } if (typeof opt === 'string') { - return ` WHERE ${opt} ` + sql += opt } if (typeof opt === 'function') { - return ` WHERE ${opt()} ` + sql += opt() } if (typeof opt === 'object') { if (opt.$and) { - return ` WHERE ${parse$and(opt.$and)}` + sql += parse$and(opt.$and) } else if (opt.$or) { - return ` WHERE ${parse$or(opt.$or)}` + sql += parse$or(opt.$or) + } else { + sql += parse$opt(opt) } - return ` WHERE ${parse$opt(opt)}` } - - return ' ' + sql = sql.trim() + if (sql) { + return ` WHERE ${sql} ` + } else { + return ' ' + } }, select(arr = ['*']) { diff --git a/package.json b/package.json index e865ad1..b52308b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mysqli", - "version": "3.0.1", + "version": "3.0.2", "description": "MySQL tool", "main": "index.js", "dependencies": {