-
Notifications
You must be signed in to change notification settings - Fork 263
/
Copy pathsys_Document.sql
61 lines (54 loc) · 87.6 KB
/
sys_Document.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
-- SQLINES DEMO *** Distrib 5.7.17, for macos10.12 (x86_64)
--
-- SQLINES DEMO *** Database: sys
-- SQLINES DEMO *** -------------------------------------
-- SQLINES DEMO *** 7.33-log
/* SQLINES DEMO *** ARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/* SQLINES DEMO *** ARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/* SQLINES DEMO *** LLATION_CONNECTION=@@COLLATION_CONNECTION */;
/* SQLINES DEMO *** tf8 */;
/* SQLINES DEMO *** ME_ZONE=@@TIME_ZONE */;
/* SQLINES DEMO *** NE='+00:00' */;
/* SQLINES DEMO *** IQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/* SQLINES DEMO *** REIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/* SQLINES DEMO *** L_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/* SQLINES DEMO *** L_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- SQLINES DEMO *** or table `Document`
--
DROP TABLE IF EXISTS Document;
/* SQLINES DEMO *** cs_client = @@character_set_client */;
/* SQLINES DEMO *** er_set_client = utf8 */;
-- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE TABLE Document (
id bigint NOT NULL AUTO_INCREMENT ,
userId bigint NOT NULL ,
testAccountId bigint NOT NULL DEFAULT '0' ,
version tinyint NOT NULL DEFAULT '3' ,
name varchar(100) NOT NULL ,
type varchar(5) NOT NULL DEFAULT 'JSON' ,
url varchar(250) NOT NULL ,
request clob NOT NULL ,
standard clob,
header clob ,
date timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (id)
) ;
/* SQLINES DEMO *** er_set_client = @saved_cs_client */;
--
-- SQLINES DEMO *** table `Document`
--
LOCK TABLES Document WRITE;
/* SQLINES DEMO *** `Document` DISABLE KEYS */;
INSERT INTO Document VALUES (1,82001,82001,1,'登录','JSON','/login','{n "type": 0, //密码类型,0-登录密码 1-验证码n "phone": "13000082001", //手机号n "password": "123456", //登录密码或验证码n "version": 1, //版本号n "remember": false //记住登录n}',NULL,NULL,'2017-11-26 07:35:19'),(2,82001,0,1,'注册(先获取验证码type:1)','JSON','/register','{n "Privacy": {n "phone": "13000083333",n "_password": "123456"n },n "User": {n "name": "APIJSONUser"n },n "verify": "6840" //验证码,需要先调用接口 /post/verifyn}',NULL,NULL,'2017-11-26 07:35:19'),(3,82001,0,1,'退出登录','JSON','/logout','{}',NULL,NULL,'2017-11-26 09:56:10'),(1511689914599,82001,0,1,'获取用户隐私信息','JSON','/gets','{"tag": "Privacy", "Privacy": {"id": 82001}}',NULL,NULL,'2017-11-26 09:51:54'),(1511796155276,82001,0,1,'获取验证码','JSON','/post/verify','{n "type": 0, //类型: 0-登录 1-注册 2-修改登录密码 3-修改支付密码n "phone": "13000082001" //手机号n}',NULL,NULL,'2017-11-27 15:23:28'),(1511796208671,82001,0,1,'检查验证码是否存在','JSON','/heads/verify','{n "type": 0, //类型: 0-登录 1-注册 2-修改登录密码 3-修改支付密码n "phone": "13000082001" //手机号n}',NULL,NULL,'2017-11-27 15:23:28'),(1511796589078,82001,82001,1,'修改登录密码(先获取验证码type:2)-手机号+验证码','JSON','/put/password','{n "verify": "10322", //验证码,需要先调用接口 /post/verifyn "Privacy": {n "phone": "13000082001",n "_password": "666666"n }n}',NULL,NULL,'2017-11-27 15:23:28'),(1511796882184,82001,82001,1,'充值(需要支付密码)/提现','JSON','/put/balance','{"tag": "Privacy", "Privacy": {"id": 82001, "balance+": 100.15, "_payPassword": "123456"}}',NULL,NULL,'2017-11-27 15:34:42'),(1511969417633,82001,82001,1,'点赞/取消点赞','JSON','/put','{n "Moment": {n "id": 15,n "praiseUserIdList-": [n 82001n ]n },n "tag": "Moment"n}',NULL,NULL,'2017-11-29 15:30:17'),(1511969630372,82001,82001,1,'新增评论','JSON','/post','{ "Comment": { "momentId": 15, "content": "测试新增评论" }, "tag": "Comment" }',NULL,NULL,'2017-11-29 15:33:50'),(1511970009072,82001,82001,1,'新增动态','JSON','/post','{ "Moment": { "content": "测试新增动态", "pictureList": ["http://static.oschina.net/uploads/user/48/96331_50.jpg" ] }, "tag": "Moment" }',NULL,NULL,'2017-11-29 15:40:09'),(1511970224333,82001,82001,1,'修改用户信息','JSON','/put','{r "User": {r "id": 82001,r "name": "测试账号"r },r "tag": "User"r }',NULL,NULL,'2017-11-29 15:43:44'),(1521901518765,88888,0,2,'功能符(对象关键词): ⑤从pictureList获取第0张图片:','JSON','/get','{ "User": { "id": 38710, "@position": 0, "firstPicture()": "getFromArray(pictureList,@position)" } }',NULL,NULL,'2018-03-24 14:25:18'),(1521901610784,88888,0,2,'功能符(对象关键词): ④查询 按userId分组、id最大值>=100 的Moment数组','JSON','/get','{"[]":{"count":10,"Moment":{"@column":"userId;max(id):maxId","@group":"userId","@having":"maxId>=100"}}}',NULL,NULL,'2018-03-24 14:26:50'),(1521901682846,88888,0,2,'功能符(对象关键词): ③查询按userId分组的Moment数组','JSON','/get','{"[]":{"count":10,"Moment":{"@column":"userId,id","@group":"userId,id"}}}',NULL,NULL,'2018-03-24 14:28:02'),(1521901746809,88888,0,2,'功能符(对象关键词): ②查询按 name降序、id默认顺序 排序的User数组','JSON','/get','{"[]":{"count":10,"User":{"@column":"name,id","@order":"name-,id"}}}',NULL,NULL,'2018-03-24 14:29:06'),(1521901787203,88888,0,2,'功能符(对象关键词): ①只查询id,sex,name这几列并且请求结果也按照这个顺序','JSON','/get','{"User":{"@column":"id,sex,name","id":38710}}',NULL,NULL,'2018-03-24 14:29:47'),(1521902033332,88888,0,2,'功能符(数组关键词): ③查询User数组和对应的User总数','JSON','/get','{"[]":{"query":2,"count":5,"User":{}},"total@":"/[]/total"}',NULL,NULL,'2018-03-24 14:33:53'),(1521902069871,88888,0,2,'功能符(数组关键词): ②查询第3页的User数组,每页5个','JSON','/get','{"[]":{"count":5,"page":3,"User":{}}}',NULL,NULL,'2018-03-24 14:34:29'),(1521902110680,88888,0,2,'功能符(数组关键词): ①查询User数组,最多5个','JSON','/get','{"[]":{"count":5,"User":{}}}',NULL,NULL,'2018-03-24 14:35:10'),(1521903761689,88888,0,2,'功能符(逻辑运算): ③ ! 非运算','JSON','/head','{"User":{"id!{}":[82001,38710]}}',NULL,NULL,'2018-03-24 15:02:41'),(1521903828410,88888,0,2,'功能符(逻辑运算): ② | 或运算','JSON','/head','{"User":{"id|{}":">90000,<=80000"}}',NULL,NULL,'2018-03-24 15:03:48'),(1521903882830,88888,0,2,'功能符(逻辑运算): ① & 与运算','JSON','/head','{"User":{"id&{}":">80000,<=90000"}}',NULL,NULL,'2018-03-24 15:04:42'),(1521904098111,88888,0,2,'功能符: 减少 或 去除','JSON','/put/balance','{n n "Privacy": {n "id": 82001,n "balance+": -100,n "_payPassword": "123456"n },"tag": "Privacy"n}',NULL,NULL,'2018-03-24 15:08:18'),(1521904162066,88888,0,2,'功能符: 增加 或 扩展','JSON','/put','{n "Moment": {n "id": 15,n "praiseUserIdList+": [n 82001n ]n },n "tag": "Moment"n}',NULL,NULL,'2018-03-24 15:09:22'),(1521904337054,88888,0,2,'功能符: 新建别名','JSON','/get','{"Comment":{"@column":"id,toId:parentId","id":51}}',NULL,NULL,'2018-03-24 15:12:17'),(1521904394042,88888,0,2,'功能符: 正则匹配','JSON','/get','{"User[]":{"count":3,"User":{"name~":"^[0-9]+$"}}}',NULL,NULL,'2018-03-24 15:13:14'),(1521904437584,88888,0,2,'功能符: 模糊搜索','JSON','/get','{"User[]":{"count":3,"User":{"name$":"%m%"}}}',NULL,NULL,'2018-03-24 15:13:57'),(1521904547992,88888,0,2,'功能符: 引用赋值','JSON','/get','{"Moment":{n "userId":38710n},n"User":{n "id@":"/Moment/userId"n}}',NULL,NULL,'2018-03-24 15:15:47'),(1521904617127,88888,0,2,'功能符: 远程调用函数','JSON','/get','{ "Moment": { "id": 301, "@column": "userId,praiseUserIdList", "isPraised()": "isContain(praiseUserIdList,userId)" } }',NULL,NULL,'2018-03-24 15:16:57'),(1521904653622,88888,0,2,'功能符: 包含选项范围','JSON','/get','{"User[]":{"count":3,"User":{"contactIdList<>":38710}}}',NULL,NULL,'2018-03-24 15:17:33'),(1521904698935,88888,0,2,'功能符: 匹配条件范围','JSON','/get','{"User[]":{"count":3,"User":{"id{}":"<=80000,>90000"}}}',NULL,NULL,'2018-03-24 15:18:18'),(1521904756674,88888,0,2,'功能符: 查询数组','JSON','/get','{"User[]":{"count":3,"User":{}}}',NULL,NULL,'2018-03-24 15:19:16'),(1521905263828,88888,82001,2,'操作方法(DELETE): 删除数据','JSON','/delete','{n "Moment":{n "id":120n },n "tag":"Moment"n}',NULL,NULL,'2018-03-24 15:27:43'),(1521905599150,88888,82001,2,'操作方法(PUT): 修改数据,只修改所传的字段','JSON','/put','{n "Moment":{n "id":235,n "content":"APIJSON,let interfaces and documents go to hell !"n },n "tag":"Moment"n}',NULL,NULL,'2018-03-24 15:33:19'),(1521905680680,88888,82001,2,'操作方法(POST): 新增数据','JSON','/post','{ "Moment": { "content": "APIJSON,let interfaces and documents go to hell !" }, "tag": "Moment" }',NULL,NULL,'2018-03-24 15:34:40'),(1521905787850,88888,82001,2,'操作方法(HEADS): 安全/私密获取数量,用于获取银行卡数量等 对安全性要求高的数据总数','JSON','/heads','{n "Login": {n "userId": 38710,"type":1n },n "tag": "Login"n}',NULL,NULL,'2018-03-24 15:36:27'),(1521905868719,88888,82001,2,'操作方法(GETS): 安全/私密获取数据,用于获取钱包等 对安全性要求高的数据','JSON','/gets','{n "Privacy": {n "id": 82001n },n "tag": "Privacy"n}',NULL,NULL,'2018-03-24 15:37:48'),(1521905895591,88888,82001,2,'操作方法(HEAD): 普通获取数量,可用浏览器调试','JSON','/head','{n "Moment":{n "userId":38710n }n}',NULL,NULL,'2018-03-24 15:38:15'),(1521905913188,88888,82001,2,'操作方法(GET): 普通获取数据,可用浏览器调试','JSON','/get','{n "Moment":{n "id":235n }n}',NULL,NULL,'2018-03-24 15:38:33'),(1521906240332,88888,0,2,'User发布的Moment列表,每个Moment包括 1.发布者User 2.前3条Comment: ③不查已获取的User','JSON','/get','{n "[]":{n "page":0,n "count":3, n "Moment":{n "userId":38710n },n "Comment[]":{n "count":3,n "Comment":{n "momentId@":"[]/Moment/id"n }n }n }n}',NULL,NULL,'2018-03-24 15:44:00'),(1521906265960,88888,0,2,'User发布的Moment列表,每个Moment包括 1.发布者User 2.前3条Comment: ②省去重复的User','JSON','/get','{n "User":{n "id":38710n },n "[]":{n "page":0,n "count":3, n "Moment":{n "userId":38710n }, n "Comment[]":{n "count":3,n "Comment":{n "momentId@":"[]/Moment/id"n }n }n }n}',NULL,NULL,'2018-03-24 15:44:25'),(1521906517001,88888,0,2,'User发布的Moment列表,每个Moment包括 1.发布者User 2.前3条Comment: ①指定id','JSON','/get','{n "[]": {n "page": 0,n "count": 3,n "Moment":{"userId":38710}, "User":{"id":38710} ,n "Comment[]": {n "count": 3,n "Comment": {n "momentId@": "[]/Moment/id"n }n }n }n}',NULL,NULL,'2018-03-24 15:48:37'),(1521907009308,88888,0,2,'Moment列表,每个Moment包括 1.发布者User 2.前3条Comment','JSON','/get','{n "[]":{n "page":0, n "count":3, n "Moment":{}, n "User":{n "id@":"/Moment/userId"n },n "Comment[]":{n "count":3,n "Comment":{n "momentId@":"[]/Moment/id"n }n }n }n}',NULL,NULL,'2018-03-24 15:56:49'),(1521907303540,88888,0,2,'User列表','JSON','/get','{n "User[]":{n "page":0,n "count":3, n "User":{n "sex":0n }n }n}',NULL,NULL,'2018-03-24 16:01:43'),(1521907317871,88888,0,2,'Moment和对应的User','JSON','/get','{n "Moment":{n "userId":38710n }, n "User":{n "id":38710n }n}',NULL,NULL,'2018-03-24 16:01:57'),(1521907333041,88888,0,2,'User','JSON','/get','{n "User":{n "id":38710n }n}',NULL,NULL,'2018-03-24 16:02:13'),(1521907333043,88888,82002,3,'微信个人资料-用户信息+最近3个有照片的动态的第0张照片','JSON','/get','{n "User": {n "id": 82002n },n "Moment-firstPicture[]": {n "count": 3,n "Moment": {n "userId@": "User/id",n "@column": "pictureList",n "@having": "json_length(pictureList)>0",n "firstPicture()": "getFromArray(pictureList,0)"n }n }n}',NULL,NULL,'2018-03-24 16:03:13'),(1521907333044,82001,82002,3,'微信个人资料-用户信息+最近3个有照片的动态的第0张照片','JSON','/get','{r "User": {r "id": 82002r },r "Moment-firstPicture[]": {r "count": 3,r "Moment": {r "userId@": "User/id",r "@column": "userId,pictureList",r "@having": "json_length(pictureList)>0",r "firstPicture()": "getFromArray(pictureList,0)"r }r }r }',NULL,NULL,'2018-03-24 16:03:13'),(1521907333046,88888,0,2,'获取粉丝的动态列表','JSON','/get','{ "Moment[]": { "join": "&/User/id@", "Moment": {}, "User": { "id@": "/Moment/userId", "contactIdList<>": 82001, "@column": "id" } } }',NULL,NULL,'2018-03-24 16:03:13'),(1521907546129,88888,0,2,'获取类似微信朋友圈的动态列表','JSON','/get','{n "[]": {n "page": 0,n "count": 2,n "Moment": {n "content$": "%a%"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "Comment[]": {n "count": 2,n "Comment": {n "momentId@": "[]/Moment/id"n }n }n }n}',NULL,NULL,'2018-03-24 16:05:46'),(1521907570452,88888,0,2,'获取动态及发布者用户','JSON','/get','{n "Moment": {},n "User": {n "id@": "Moment/userId"n }n}',NULL,NULL,'2018-03-24 16:06:10'),(1521907587430,88888,0,2,'获取用户列表','JSON','/get','{n "[]": {n "count": 3,n "User": {n "@column": "id,name"n }n }n}',NULL,NULL,'2018-03-24 16:06:27'),(1521907601299,88888,0,2,'获取用户','JSON','/get','{n "User":{n }n}',NULL,NULL,'2018-03-24 16:06:41'),(1522905263828,82001,0,2,'操作方法(DELETE): 删除数据','JSON','/delete','{n "Moment":{n "id":120n },n "tag":"Moment"n}',NULL,NULL,'2018-03-24 13:27:43'),(1522905599150,82001,0,2,'操作方法(PUT): 修改数据,只修改所传的字段','JSON','/put','{n "Moment":{n "id":235,n "content":"APIJSON,let interfaces and documents go to hell !"n },n "tag":"Moment"n}',NULL,NULL,'2018-03-24 13:33:19'),(1522905680680,82001,0,2,'操作方法(POST): 新增数据','JSON','/post','{ "Moment": { "content": "APIJSON,let interfaces and documents go to hell !" }, "tag": "Moment" }',NULL,NULL,'2018-03-24 13:34:40'),(1522905787850,82001,0,2,'操作方法(HEADS): 安全/私密获取数量,用于获取银行卡数量等 对安全性要求高的数据总数','JSON','/heads','{n "Login": {n "userId": 38710,"type":1n },n "tag": "Login"n}',NULL,NULL,'2018-03-24 13:36:27'),(1522905868719,82001,0,2,'操作方法(GETS): 安全/私密获取数据,用于获取钱包等 对安全性要求高的数据','JSON','/gets','{n "Privacy": {n "id": 82001n },n "tag": "Privacy"n}',NULL,NULL,'2018-03-24 13:37:48'),(1522905895591,82001,0,2,'操作方法(HEAD): 普通获取数量,可用浏览器调试','JSON','/head','{n "Moment":{n "userId":38710n }n}',NULL,NULL,'2018-03-24 13:38:15'),(1522905913188,82001,0,2,'操作方法(GET): 普通获取数据,可用浏览器调试','JSON','/get','{n "Moment":{n "id":235n }n}',NULL,NULL,'2018-03-24 13:38:33'),(1544881887527,88888,0,3,'Moment INNER JOIN User LEFT JOIN Comment','JSON','/get','{n "[]": {n "count": 10,n "page": 0,n "join": "&/User/id@,</Comment/momentId@",n "Moment": {n "@order": "date+"n },n "User": {n "name~": [n "a",n "t"n ],n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "Comment": {n "momentId@": "/Moment/id",n "@column": "id,momentId,content"n }n }n}',NULL,NULL,'2018-12-15 13:51:27'),(1544882007411,88888,0,3,'Moment LEFT JOIN User','JSON','/get','{n "[]": {n "join": "</User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:53:27'),(1544882038386,88888,0,3,'Comment LEFT JOIN User','JSON','/get','{n "[]": {n "join": "</User/id@",n "Comment": {n "@column": "id,userId,content","@order":"date-"n },n "User": {n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:53:58'),(1544882070832,88888,0,3,'Moment INNER JOIN User','JSON','/get','{n "[]": {n "join": "&/User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {"name~":["a","t"],n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:54:30'),(1544882126906,88888,0,3,'Comment INNER JOIN User','JSON','/get','{n "[]": {n "join": "&/User/id@",n "Comment": {n "content~": "a",n "@order": "date-"n },n "User": {n "name~": [n "a",n "t"n ],n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:55:26'),(1544882162662,88888,0,3,'Moment APP JOIN User','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:56:02'),(1544882183671,88888,0,3,'Comment APP JOIN User','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Comment": {n "content~": "a",n "@order": "date-"n },n "User": {n "name~": [n "a",n "t"n ],n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:56:23'),(1544882236758,88888,0,3,'朋友圈 LEFT JOIN','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "join": "</User/id@",n "Moment": {n "@order": "date+"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "User[]": {n "count": 10,n "User": {n "id{}@": "[]/Moment/praiseUserIdList",n "@column": "id,name"n }n },n "[]": {n "count": 6, "join": "</User/id@",n "Comment": {n "@order": "date+",n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n }n}',NULL,NULL,'2018-12-15 13:57:16'),(1544882253771,88888,0,3,'朋友圈 APP JOIN','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "join": "@/User/id@",n "Moment": {n "@order": "date+"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "User[]": {n "count": 10,n "User": {n "id{}@": "[]/Moment/praiseUserIdList",n "@column": "id,name"n }n },n "[]": {n "count": 6,n "join": "@/User/id@",n "Comment": {n "@order": "date+",n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n }n}',NULL,NULL,'2018-12-15 13:57:33'),(1544882327374,88888,0,3,'Comment SIDE JOIN User','JSON','/get','{n "[]": {n "join": "^/User/id@",n "Comment": {n "@column": "id,userId,content",n "@order": "date-"n },n "User": {n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:58:47'),(1544882345510,88888,0,3,'Moment SIDE JOIN User','JSON','/get','{n "[]": {n "join": "^/User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:59:05'),(1544883133787,88888,0,3,'Moment^User each with condition','JSON','/get','{n "[]": {n "join": "^/User/id@",n "Moment": {"content~":"a",n "@column": "id,userId,content"n },n "User": {"sex":1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:12:13'),(1544883165350,88888,0,3,'Moment<User each with condition','JSON','/get','{n "[]": {n "join": "</User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:12:45'),(1544883183460,88888,0,3,'Moment&User each with condition','JSON','/get','{n "[]": {n "join": "&/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:13:03'),(1544883206003,88888,0,3,'Moment|User each with condition','JSON','/get','{n "[]": {n "join": "|/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:13:26'),(1544883224060,88888,0,3,'Moment!User each with condition','JSON','/get','{n "[]": {n "join": "!/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:13:44'),(1544883250598,88888,0,3,'Moment>User each with condition','JSON','/get','{n "[]": {n "join": ">/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:14:10'),(1544883278939,88888,0,3,'Moment@User each with condition','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:14:38'),(1544883352884,88888,0,3,'Moment<User<Comment','JSON','/get','{n "[]": {n "join": "</User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:15:52'),(1544883368286,88888,0,3,'Moment&User<Comment','JSON','/get','{n "[]": {n "join": "&/User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:16:08'),(1544883407371,88888,0,3,'Moment|User<Comment','JSON','/get','{n "[]": {n "join": "|/User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:16:47'),(1544883431831,88888,0,3,'Moment^User<Comment','JSON','/get','{n "[]": {n "join": "^/User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:17:11'),(1544883455364,88888,0,3,'Moment@User<Comment','JSON','/get','{n "[]": {n "join": "@/User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:17:35'),(1544884133788,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": {"content~":"a", "@column": "id,userId,content" }, "User": {"sex":1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:12:13'),(1544884165351,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:12:45'),(1544884183460,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:13:03'),(1544884206003,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:13:26'),(1544884224060,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:13:44'),(1544884250598,88888,0,3,'Moment@User each with condition','JSON','/get','{ "[]": { "join": "@/User/id@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" } } }',NULL,NULL,'2018-12-15 14:14:10'),(1544884278939,88888,0,3,'Moment@User each with condition','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 14:14:38'),(1544884352884,88888,0,3,'Moment@User<Comment','JSON','/get','{ "[]": { "join": "@/User/id@,</Comment/momentId@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" }, "Comment": { "momentId@": "/Moment/id" } } }',NULL,NULL,'2018-12-15 14:15:52'),(1544884368286,88888,0,3,'Moment@User<Comment','JSON','/get','{ "[]": { "join": "@/User/id@,</Comment/momentId@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" }, "Comment": { "momentId@": "/Moment/id" } } }',NULL,NULL,'2018-12-15 14:16:08'),(1544884407371,88888,0,3,'Moment@User<Comment','JSON','/get','{ "[]": { "join": "@/User/id@,</Comment/momentId@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" }, "Comment": { "momentId@": "/Moment/id" } } }',NULL,NULL,'2018-12-15 14:16:47'),(1544884431831,88888,0,3,'Moment@User<Comment','JSON','/get','{ "[]": { "join": "@/User/id@,</Comment/momentId@", "Moment": { "content~": "a", "@column": "id,userId,content" }, "User": { "sex": 1, "@column": "id,name", "id@": "/Moment/userId" }, "Comment": { "momentId@": "/Moment/id" } } }',NULL,NULL,'2018-12-15 14:17:11'),(1544884455364,88888,0,3,'Moment@User<Comment','JSON','/get','{n "[]": {n "join": "@/User/id@,</Comment/momentId@",n "Moment": {n "content~": "a",n "@column": "id,userId,content"n },n "User": {n "sex": 1,n "@column": "id,name",n "id@": "/Moment/userId"n },n "Comment": {n "momentId@": "/Moment/id"n }n }n}',NULL,NULL,'2018-12-15 14:17:35'),(1546414155879,82001,82001,3,'获取类似微信朋友圈的动态列表','JSON','/get','{n "[]": {n "page": 0,n "count": 2,n "Moment": {n "content$": "%a%"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "Comment[]": {n "count": 2,n "Comment": {n "momentId@": "[]/Moment/id"n }n }n }n}',NULL,NULL,'2019-01-02 07:29:15'),(1546414179257,82001,82001,3,'获取动态及发布者用户','JSON','/get','{n "Moment": {},n "User": {n "id@": "Moment/userId"n }n}',NULL,NULL,'2019-01-02 07:29:39'),(1546414192830,82001,82001,3,'获取用户列表','JSON','/get','{n "[]": {n "count": 3,n "User": {n "@column": "id,name"n }n }n}',NULL,NULL,'2019-01-02 07:29:52'),(1546414207052,82001,82001,3,'获取用户','JSON','/get','{n "User":{n }n}',NULL,NULL,'2019-01-02 07:30:07'),(1546881887421,88888,0,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "[]": {n "User": {n "id{}@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:25:18'),(1546881887422,88888,0,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "[]": {n "User": {n "id}{@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:25:18'),(1546881887423,88888,0,1,'子查询 WHERE id=(SELECT min(userId) FROM Comment)','JSON','/get','{n "User": {n "id@": {n "from": "Comment",n "Comment": {n "@column": "min(userId)"n }n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1546881887521,82001,82001,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "[]": {n "User": {n "id{}@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:25:18'),(1546881887522,82001,82001,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "[]": {n "User": {n "id}{@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:25:18'),(1546881887523,82001,82001,1,'子查询 WHERE id=(SELECT min(userId) FROM Comment)','JSON','/get','{n "User": {n "id@": {n "from": "Comment",n "Comment": {n "@column": "min(userId)"n }n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1546881887524,88888,88888,1,'存储过程','JSON','/get','{n "User": {n "@limit": 10,n "@offset": 0,n "@procedure()": "getCommentByUserId(id,@limit,@offset)"n }n}',NULL,NULL,'2018-03-24 13:34:40'),(1546881887525,82001,82001,1,'存储过程','JSON','/get','{n "User": {n "@limit": 10,n "@offset": 0,n "@procedure()": "getCommentByUserId(id,@limit,@offset)"n }n}',NULL,NULL,'2018-03-24 13:34:40'),(1546881887527,82001,0,1,'Moment INNER JOIN User LEFT JOIN Comment','JSON','/get','{n "[]": {n "count": 10,n "page": 0,n "join": "&/User/id@,</Comment/momentId@",n "Moment": {n "@order": "date+"n },n "User": {n "name~": [n "a",n "t"n ],n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "Comment": {n "momentId@": "/Moment/id",n "@column": "id,momentId,content"n }n }n}',NULL,NULL,'2018-12-15 13:51:27'),(1546882007411,82001,0,1,'Moment LEFT JOIN User','JSON','/get','{n "[]": {n "join": "</User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:53:27'),(1546882038386,82001,0,1,'Comment LEFT JOIN User','JSON','/get','{n "[]": {n "join": "</User/id@",n "Comment": {n "@column": "id,userId,content","@order":"date-"n },n "User": {n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:53:58'),(1546882070832,82001,0,1,'Moment INNER JOIN User','JSON','/get','{n "[]": {n "join": "&/User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {"name~":["a","t"],n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:54:30'),(1546882126906,82001,0,1,'Comment INNER JOIN User','JSON','/get','{n "[]": {n "join": "&/User/id@",n "Comment": {n "content~": "a",n "@order": "date-"n },n "User": {n "name~": [n "a",n "t"n ],n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:55:26'),(1546882162662,82001,0,1,'Moment APP JOIN User','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Moment": {n "@column": "id,userId,content"n },n "User": {n "@column": "id,name",n "id@": "/Moment/userId"n }n }n}',NULL,NULL,'2018-12-15 13:56:02'),(1546882183671,82001,0,1,'Comment APP JOIN User','JSON','/get','{n "[]": {n "join": "@/User/id@",n "Comment": {n "content~": "a",n "@order": "date-"n },n "User": {n "name~": [n "a",n "t"n ],n "@column": "id,name",n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2018-12-15 12:56:23'),(1546882236758,82001,0,1,'朋友圈 LEFT JOIN','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "join": "</User/id@",n "Moment": {n "@order": "date+"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "User[]": {n "count": 10,n "User": {n "id{}@": "[]/Moment/praiseUserIdList",n "@column": "id,name"n }n },n "[]": {n "count": 6, "join": "</User/id@",n "Comment": {n "@order": "date+",n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n }n}',NULL,NULL,'2018-12-15 12:57:16'),(1546882253771,82001,0,1,'朋友圈 APP JOIN','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "join": "@/User/id@",n "Moment": {n "@order": "date+"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "User[]": {n "count": 10,n "User": {n "id{}@": "[]/Moment/praiseUserIdList",n "@column": "id,name"n }n },n "[]": {n "count": 6,n "join": "@/User/id@",n "Comment": {n "@order": "date+",n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n }n}',NULL,NULL,'2018-12-15 12:57:33'),(1546901518765,82001,0,2,'功能符(对象关键词): ⑤从pictureList获取第0张图片:','JSON','/get','{ "User": { "id": 38710, "@position": 0, "firstPicture()": "getFromArray(pictureList,@position)" } }',NULL,NULL,'2018-03-24 14:25:18'),(1546902069871,82001,0,2,'功能符(数组关键词): ②查询第3页的User数组,每页5个','JSON','/get','{"[]":{"count":5,"page":3,"User":{}}}',NULL,NULL,'2018-03-24 14:34:29'),(1546902110680,82001,0,2,'功能符(数组关键词): ①查询User数组,最多5个','JSON','/get','{"[]":{"count":5,"User":{}}}',NULL,NULL,'2018-03-24 14:35:10'),(1546903761689,82001,0,2,'功能符(逻辑运算): ③ ! 非运算','JSON','/head','{"User":{"id!{}":[82001,38710]}}',NULL,NULL,'2018-03-24 15:02:41'),(1546903828410,82001,0,2,'功能符(逻辑运算): ② | 或运算','JSON','/head','{"User":{"id|{}":">90000,<=80000"}}',NULL,NULL,'2018-03-24 15:03:48'),(1546903882830,82001,0,2,'功能符(逻辑运算): ① & 与运算','JSON','/head','{"User":{"id&{}":">80000,<=90000"}}',NULL,NULL,'2018-03-24 15:04:42'),(1546904098111,82001,82001,2,'功能符: 减少 或 去除','JSON','/put/balance','{n n "Privacy": {n "id": 82001,n "balance+": -100,n "_payPassword": "123456"n },"tag": "Privacy"n}',NULL,NULL,'2018-03-24 15:08:18'),(1546904162066,82001,82001,2,'功能符: 增加 或 扩展','JSON','/put','{n "Moment": {n "id": 15,n "praiseUserIdList+": [n 82001n ]n },n "tag": "Moment"n}',NULL,NULL,'2018-03-24 15:09:22'),(1546904337054,82001,0,2,'功能符: 新建别名','JSON','/get','{"Comment":{"@column":"id,toId:parentId","id":51}}',NULL,NULL,'2018-03-24 15:12:17'),(1546904394042,82001,0,2,'功能符: 正则匹配','JSON','/get','{"User[]":{"count":3,"User":{"name~":"^[0-9]+$"}}}',NULL,NULL,'2018-03-24 15:13:14'),(1546904437584,82001,0,2,'功能符: 模糊搜索','JSON','/get','{"User[]":{"count":3,"User":{"name$":"%m%"}}}',NULL,NULL,'2018-03-24 15:13:57'),(1546904547992,82001,0,2,'功能符: 引用赋值','JSON','/get','{"Moment":{n "userId":38710n},n"User":{n "id@":"/Moment/userId"n}}',NULL,NULL,'2018-03-24 15:15:47'),(1546904617127,82001,0,2,'功能符: 远程调用函数','JSON','/get','{ "Moment": { "id": 301, "@column": "userId,praiseUserIdList", "isPraised()": "isContain(praiseUserIdList,userId)" } }',NULL,NULL,'2018-03-24 15:16:57'),(1546904653622,82001,0,2,'功能符: 包含选项范围','JSON','/get','{"User[]":{"count":3,"User":{"contactIdList<>":38710}}}',NULL,NULL,'2018-03-24 15:17:33'),(1546904698935,82001,0,2,'功能符: 匹配条件范围','JSON','/get','{"User[]":{"count":3,"User":{"id{}":"<=80000,>90000"}}}',NULL,NULL,'2018-03-24 15:18:18'),(1546904756674,82001,0,2,'功能符: 查询数组','JSON','/get','{"User[]":{"count":3,"User":{}}}',NULL,NULL,'2018-03-24 15:19:16'),(1546907333046,82001,0,1,'获取粉丝的动态列表','JSON','/get','{ "Moment[]": { "join": "&/User/id@", "Moment": {}, "User": { "id@": "/Moment/userId", "contactIdList<>": 82001, "@column": "id" } } }',NULL,NULL,'2018-03-24 16:03:13'),(1547401498195,88888,0,1,'子查询FROM和IN','JSON','/get','{r "sql@": {r "from": "Comment",r "Comment": {r "momentId": 12,r "@column": "userId",r "@group": "userId"r }r },r "Comment-userId[]": {r "Comment": {r "@from@": "sql"r }r },r "[]": {r "User": {r "id{}@": "sql",r "sex": 1,r "@column": "id,sex,name"r }r }r }',NULL,NULL,'2019-01-13 17:44:58'),(1548728831507,82001,82001,3,'get test','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}',NULL,NULL,'2019-01-29 02:27:11'),(1556385621907,82001,0,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "subquery@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "[]": {n "User": {n "id{}@": "subquery",n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1556385621908,88888,0,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "subquery@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "[]": {n "User": {n "id{}@": "subquery",n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1556385677607,82001,0,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "subquery@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "[]": {n "User": {n "id}{@": "subquery",n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1556385677608,88888,0,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{n "subquery@": {n "from": "Comment",n "Comment": {n "momentId": 15,n "@column": "userId"n }n },n "[]": {n "User": {n "id}{@": "subquery",n "@column": "id,sex,name"n }n }n}',NULL,NULL,'2018-02-24 14:28:18'),(1558944411696,82001,82001,3,'关联查询 Comment.userId = User.id','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}',NULL,NULL,'2019-05-27 08:06:51'),(1559995734352,82001,0,3,'get 自定义关键词和远程函数的应用','JSON','/get','{n "User": {n "id": 82001,n "@column": "contactIdList",n "@value": 82006,n "isContect()": "isContain(contactIdList,@value)"n }n}n/*n1、获取User表中的id==82001的数据块;n2、获取contactIdList列中的数据;n3、设定自定义关键词和值"@value": 82006;n4、调用远程函数isContain判断 contactIdList 中是否存在值为82006的id;n5、判断结果看 isContect的值。n*/',NULL,NULL,'2019-06-08 12:08:54'),(1560075285563,82001,0,3,'Comment JOIN User','JSON','/get','{n "[]": {n "join": "</User/id@",n "Comment": {n "@order": "date-"n },n "User": {n "id@": "/Comment/userId"n }n }n}',NULL,NULL,'2019-06-09 10:14:45'),(1560244940013,82001,82001,3,'测试查询','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}',NULL,NULL,'2019-06-11 09:22:20'),(1560737118846,82001,82001,3,'get User','JSON','/get','{n "User": {n "id": 82002n }n}',NULL,NULL,'2019-06-17 02:05:18'),(1563115049174,88888,0,3,'去重 DISTINCT','JSON','/get','{n "[]": {n "Comment": {n "@column": "DISTINCT momentId;count(DISTINCT userId)",n "@group": "momentId"n }n },n "@explain": truen}',NULL,NULL,'2018-03-20 14:25:18'),(1563120735968,82001,0,3,'去重 DISTINCT','JSON','/get','{n "[]": {n "Comment": {n "@column": "DISTINCT momentId;count(DISTINCT userId)",n "@group": "momentId"n }n },n "@explain": truen}',NULL,NULL,'2018-03-20 14:25:18'),(1563983388528,82001,0,3,'热更新 权限控制、请求校验、远程函数 等配置','JSON','/reload','{n "type": "REQUEST", // ALL-全部, ACCESS-权限, REQUEST-请求校验, FUNCTION-远程函数n "phone": "13000082001",n "verify": "1234" //验证码,调用 /post/verify ,type:4 获取n}',NULL,NULL,'2019-07-24 15:49:48'),(1563983969937,88888,0,3,'热更新 权限控制、请求校验、远程函数 等配置','JSON','/reload','{n "type": "REQUEST", // ALL-全部, ACCESS-权限, REQUEST-请求校验, FUNCTION-远程函数n "phone": "13000082001",n "verify": "1234" //验证码,调用 /post/verify ,type:4 获取n}',NULL,NULL,'2019-07-24 15:59:29'),(1564388238598,1564369325432,82001,3,'测试上传','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634765,1564369325432,82001,1,'登录','JSON','/login','{r "type": 0, //密码类型,0-登录密码 1-验证码r "phone": "13000082001", //手机号r "password": "123456", //登录密码或验证码r "version": 1, //版本号r "remember": false //记住登录r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634766,1564369325432,0,1,'注册(先获取验证码type:1)','JSON','/register','{r "Privacy": {r "phone": "13000083333",r "_password": "123456"r },r "User": {r "name": "APIJSONUser"r },r "verify": "6840" //验证码,需要先调用接口 /post/verifyr }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634841,82001,0,2,'视图表 ViewTable 查单条记录 /get','JSON','/get','{n "ViewTable": {"id": 82001}n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634842,82001,0,2,'视图表 ViewTable 查列表带条件','JSON','/get','{n "ViewTable[]": {n "ViewTable": {n "toId": 0,n "content~": "a"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634843,82001,0,2,'视图表 ViewTable INNER JOIN Moment','JSON','/get','{n "[]": {n "join": "&/Moment/id@",n "ViewTable": {"toId":0},n "Moment": {"content~":"a",n "id@": "/ViewTable/momentId"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634844,82001,0,2,'视图表 ViewTable 子查询','JSON','/get','{n "ViewTable[]": {n "ViewTable": {n "momentId{}@": {n "from": "Moment",n "Moment": {n "@column": "id"n }n }n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634845,82001,0,2,'视图表 ViewTable LEFT JOIN Moment','JSON','/get','{n "[]": {n "join": "</Moment/id@",n "ViewTable": {},n "Moment": {n "id@": "/ViewTable/momentId"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634846,82001,0,2,'全局关键词','JSON','/get','{n "[]": {n "count": 3,n "Moment": {},n n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "[]": {n "count": 6,n "Comment": {n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n },n "format": false,n "tag": "Moment[]",n "version": 0,n "@role": "CIRCLE",n "@database": "MYSQL",n "@schema": "sys",n "@explain": true,n "@cache": 0n}n n',NULL,'','2019-07-29 08:43:18'),(1564483634853,1564369325432,0,1,'退出登录','JSON','/logout','{}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634854,1564369325432,0,1,'获取用户隐私信息','JSON','/gets','{"tag": "Privacy", "Privacy": {"id": 82001}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634855,1564369325432,0,1,'获取验证码','JSON','/post/verify','{r "type": 0, //类型: 0-登录 1-注册 2-修改登录密码 3-修改支付密码r "phone": "13000082001" //手机号r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634856,1564369325432,0,1,'检查验证码是否存在','JSON','/heads/verify','{r "type": 0, //类型: 0-登录 1-注册 2-修改登录密码 3-修改支付密码r "phone": "13000082001" //手机号r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634857,1564369325432,82001,1,'修改登录密码(先获取验证码type:2)-手机号+验证码','JSON','/put/password','{r "verify": "10322", //验证码,需要先调用接口 /post/verifyr "Privacy": {r "phone": "13000082001",r "_password": "666666"r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634858,1564369325432,82001,1,'充值(需要支付密码)/提现','JSON','/put/balance','{"tag": "Privacy", "Privacy": {"id": 82001, "balance+": 100.15, "_payPassword": "123456"}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634859,1564369325432,82001,1,'点赞/取消点赞','JSON','/put','{r "Moment": {r "id": 15,r "praiseUserIdList-": [r 82001r ]r },r "tag": "Moment"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634860,1564369325432,82001,1,'新增评论','JSON','/post','{ "Comment": { "momentId": 15, "content": "测试新增评论" }, "tag": "Comment" }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634861,1564369325432,82001,1,'新增动态','JSON','/post','{ "Moment": { "content": "测试新增动态", "pictureList": ["http://static.oschina.net/uploads/user/48/96331_50.jpg" ] }, "tag": "Moment" }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634862,1564369325432,82001,1,'修改用户信息','JSON','/put','{r "User": {r "id": 82001,r "name": "测试账号"r },r "tag": "User"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634863,1564369325432,82002,3,'微信个人资料-用户信息+最近3个有照片的动态的第0张照片','JSON','/get','{r "User": {r "id": 82002r },r "Moment-firstPicture[]": {r "count": 3,r "Moment": {r "userId@": "User/id",r "@column": "userId,pictureList",r "@having": "json_length(pictureList)>0",...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634864,1564369325432,0,2,'操作方法(DELETE): 删除数据','JSON','/delete','{r "Moment":{r "id":120r },r "tag":"Moment"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634865,1564369325432,0,2,'操作方法(PUT): 修改数据,只修改所传的字段','JSON','/put','{r "Moment":{r "id":235,r "content":"APIJSON,let interfaces and documents go to hell !"r },r "tag":"Moment"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634866,1564369325432,0,2,'操作方法(POST): 新增数据','JSON','/post','{ "Moment": { "content": "APIJSON,let interfaces and documents go to hell !" }, "tag": "Moment" }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634867,1564369325432,0,2,'操作方法(HEADS): 安全/私密获取数量,用于获取银行卡数量等 对安全性要求高的数据总数','JSON','/heads','{r "Login": {r "userId": 38710,"type":1r },r "tag": "Login"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634868,1564369325432,0,2,'操作方法(GETS): 安全/私密获取数据,用于获取钱包等 对安全性要求高的数据','JSON','/gets','{r "Privacy": {r "id": 82001r },r "tag": "Privacy"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634869,1564369325432,0,2,'操作方法(HEAD): 普通获取数量,可用浏览器调试','JSON','/head','{r "Moment":{r "userId":38710r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634870,1564369325432,0,2,'操作方法(GET): 普通获取数据,可用浏览器调试','JSON','/get','{r "Moment":{r "id":235r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634871,1564369325432,82001,3,'获取类似微信朋友圈的动态列表','JSON','/get','{r "[]": {r "page": 0,r "count": 2,r "Moment": {r "content$": "%a%"r },r "User": {r "id@": "/Moment/userId",r "@column": "id,name,head"r },r "Comment[]": {r "...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634872,1564369325432,82001,3,'获取动态及发布者用户','JSON','/get','{r "Moment": {},r "User": {r "id@": "Moment/userId"r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634873,1564369325432,82001,3,'获取用户列表','JSON','/get','{r "[]": {r "count": 3,r "User": {r "@column": "id,name"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634874,1564369325432,82001,3,'获取用户','JSON','/get','{r "User":{r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634875,1564369325432,82001,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{r "[]": {r "User": {r "id{}@": {r "from": "Comment",r "Comment": {r "momentId": 15,r "@column": "userId"r }r },r "@column": "id...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634876,1564369325432,82001,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{r "[]": {r "User": {r "id}{@": {r "from": "Comment",r "Comment": {r "momentId": 15,r "@column": "userId"r }r },r "@column": "id...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634877,1564369325432,82001,1,'子查询 WHERE id=(SELECT min(userId) FROM Comment)','JSON','/get','{r "User": {r "id@": {r "from": "Comment",r "Comment": {r "@column": "min(userId)"r }r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634878,1564369325432,82001,1,'存储过程','JSON','/get','{r "User": {r "@limit": 10,r "@offset": 0,r "@procedure()": "getCommentByUserId(id,@limit,@offset)"r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634879,1564369325432,0,1,'Moment INNER JOIN User LEFT JOIN Comment','JSON','/get','{r "[]": {r "count": 10,r "page": 0,r "join": "&/User/id@,</Comment/momentId@",r "Moment": {r "@order": "date+"r },r "User": {r "name~": [r "a",r "t"r ...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634880,1564369325432,0,1,'Moment LEFT JOIN User','JSON','/get','{r "[]": {r "join": "</User/id@",r "Moment": {r "@column": "id,userId,content"r },r "User": {r "@column": "id,name",r "id@": "/Moment/userId"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634881,1564369325432,0,1,'Comment LEFT JOIN User','JSON','/get','{r "[]": {r "join": "</User/id@",r "Comment": {r "@column": "id,userId,content","@order":"date-"r },r "User": {r "@column": "id,name",r "id@": "/Comment/userId"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634882,1564369325432,0,1,'Moment INNER JOIN User','JSON','/get','{r "[]": {r "join": "&/User/id@",r "Moment": {r "@column": "id,userId,content"r },r "User": {"name~":["a","t"],r "@column": "id,name",r "id@": "/Moment/userId"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634883,1564369325432,0,1,'Comment INNER JOIN User','JSON','/get','{r "[]": {r "join": "&/User/id@",r "Comment": {r "content~": "a",r "@order": "date-"r },r "User": {r "name~": [r "a",r "t"r ],r "@column":...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634884,1564369325432,0,1,'Moment APP JOIN User','JSON','/get','{r "[]": {r "join": "@/User/id@",r "Moment": {r "@column": "id,userId,content"r },r "User": {r "@column": "id,name",r "id@": "/Moment/userId"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634885,1564369325432,0,1,'Comment APP JOIN User','JSON','/get','{r "[]": {r "join": "@/User/id@",r "Comment": {r "content~": "a",r "@order": "date-"r },r "User": {r "name~": [r "a",r "t"r ],r "@column":...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634886,1564369325432,0,1,'朋友圈 LEFT JOIN','JSON','/get','{r "[]": {r "count": 5,r "page": 0,r "join": "</User/id@",r "Moment": {r "@order": "date+"r },r "User": {r "id@": "/Moment/userId",r "@column": "id,name,head"r },r ...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634887,1564369325432,0,1,'朋友圈 APP JOIN','JSON','/get','{r "[]": {r "count": 5,r "page": 0,r "join": "@/User/id@",r "Moment": {r "@order": "date+"r },r "User": {r "id@": "/Moment/userId",r "@column": "id,name,head"r },r ...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634888,1564369325432,0,2,'功能符(对象关键词): ⑤从pictureList获取第0张图片:','JSON','/get','{ "User": { "id": 38710, "@position": 0, "firstPicture()": "getFromArray(pictureList,@position)" } }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634889,1564369325432,0,2,'功能符(数组关键词): ②查询第3页的User数组,每页5个','JSON','/get','{"[]":{"count":5,"page":3,"User":{}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634890,1564369325432,0,2,'功能符(数组关键词): ①查询User数组,最多5个','JSON','/get','{"[]":{"count":5,"User":{}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634891,1564369325432,0,2,'功能符(逻辑运算): ③ ! 非运算','JSON','/head','{"User":{"id!{}":[82001,38710]}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634892,1564369325432,0,2,'功能符(逻辑运算): ② | 或运算','JSON','/head','{"User":{"id|{}":">90000,<=80000"}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634893,1564369325432,0,2,'功能符(逻辑运算): ① & 与运算','JSON','/head','{"User":{"id&{}":">80000,<=90000"}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634894,1564369325432,82001,2,'功能符: 减少 或 去除','JSON','/put/balance','{r r "Privacy": {r "id": 82001,r "balance+": -100,r "_payPassword": "123456"r },"tag": "Privacy"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634895,1564369325432,82001,2,'功能符: 增加 或 扩展','JSON','/put','{r "Moment": {r "id": 15,r "praiseUserIdList+": [r 82001r ]r },r "tag": "Moment"r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634896,1564369325432,0,2,'功能符: 新建别名','JSON','/get','{"Comment":{"@column":"id,toId:parentId","id":51}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634897,1564369325432,0,2,'功能符: 正则匹配','JSON','/get','{"User[]":{"count":3,"User":{"name~":"^[0-9]+$"}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634898,1564369325432,0,2,'功能符: 模糊搜索','JSON','/get','{"User[]":{"count":3,"User":{"name$":"%m%"}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634899,1564369325432,0,2,'功能符: 引用赋值','JSON','/get','{"Moment":{r "userId":38710r },r "User":{r "id@":"/Moment/userId"r }}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634900,1564369325432,0,2,'功能符: 远程调用函数','JSON','/get','{ "Moment": { "id": 301, "@column": "userId,praiseUserIdList", "isPraised()": "isContain(praiseUserIdList,userId)" } }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634901,1564369325432,0,2,'功能符: 包含选项范围','JSON','/get','{"User[]":{"count":3,"User":{"contactIdList<>":38710}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634902,1564369325432,0,2,'功能符: 匹配条件范围','JSON','/get','{"User[]":{"count":3,"User":{"id{}":"<=80000,>90000"}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634903,1564369325432,0,2,'功能符: 查询数组','JSON','/get','{"User[]":{"count":3,"User":{}}}',NULL,NULL,'2019-07-29 08:43:18'),(1564483634904,1564369325432,0,1,'获取粉丝的动态列表','JSON','/get','{ "Moment[]": { "join": "&/User/id@", "Moment": {}, "User": { "id@": "/Moment/userId", "contactIdList<>": 82001, "@column": "id" } } }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634905,1564369325432,82001,3,'get test','JSON','/get','{r "User": {r "id": 82001r },r "[]": {r "Comment": {r "userId@": "User/id"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634906,1564369325432,0,1,'子查询 WHERE id IN(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{r "subquery@": {r "from": "Comment",r "Comment": {r "momentId": 15,r "@column": "userId"r }r },r "[]": {r "User": {r "id{}@": "subquery",r "@column": "id,sex,name"r ...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634907,1564369325432,0,1,'子查询 WHERE EXISTS(SELECT userId FROM Comment WHERE momentId=15)','JSON','/get','{r "subquery@": {r "from": "Comment",r "Comment": {r "momentId": 15,r "@column": "userId"r }r },r "[]": {r "User": {r "id}{@": "subquery",r "@column": "id,sex,name"r ...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634908,1564369325432,82001,3,'关联查询 Comment.userId = User.id','JSON','/get','{r "User": {r "id": 82001r },r "[]": {r "Comment": {r "userId@": "User/id"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634909,1564369325432,0,3,'get 自定义关键词和远程函数的应用','JSON','/get','{r "User": {r "id": 82001,r "@column": "contactIdList",r "@value": 82006,r "isContect()": "isContain(contactIdList,@value)"r }r }r /*r 1、获取User表中的id==82001的数据块;r 2、获取contactIdList列中的数据...',NULL,NULL,'2019-07-29 08:43:18'),(1564483634910,1564369325432,0,3,'Comment JOIN User','JSON','/get','{r "[]": {r "join": "</User/id@",r "Comment": {r "@order": "date-"r },r "User": {r "id@": "/Comment/userId"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634911,1564369325432,82001,3,'测试查询','JSON','/get','{r "User": {r "id": 82001r },r "[]": {r "Comment": {r "userId@": "User/id"r }r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634912,1564369325432,82001,3,'get User','JSON','/get','{r "User": {r "id": 82002r }r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634913,1564369325432,0,3,'去重 DISTINCT','JSON','/get','{r "[]": {r "Comment": {r "@column": "DISTINCT momentId;count(DISTINCT userId)",r "@group": "momentId"r }r },r "@explain": truer }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634914,1564369325432,0,3,'热更新 权限控制、请求校验、远程函数 等配置','JSON','/reload','{r "type": "REQUEST", // ALL-全部, ACCESS-权限, REQUEST-请求校验, FUNCTION-远程函数r "phone": "13000082001",r "verify": "1234" //验证码,调用 /post/verify ,type:4 获取r }',NULL,NULL,'2019-07-29 08:43:18'),(1564483634915,82001,0,2,'功能符:连续范围','JSON','/get','{"User[]":{"count":3,"User":{"date%":"2017-10-01,2018-10-01"}}}',NULL,'','2019-07-29 08:43:18'),(1564483634916,82001,0,3,'获取用户名称列表','JSON','/get','{n "User-name[]": {n "User": {n "@column": "name"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1564907459034,82001,0,3,'请求头 Request Header','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}',NULL,'Authorization: Basic GERIJ2438R9FH239NW= //取出 /login 接口返回的 tokennOther-Header: test','2019-08-04 08:30:59'),(1567927050590,88888,0,3,'test response hint','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "Moment": {n "@order": "date+"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "User[]": {n "count": 10,n "query": 2,n "User": {n "id{}@": "[]/Moment/praiseUserIdList",n "@column": "id,name"n }n },n "Comment-userId[]": {n "count": 6,n "query": 2,n "Comment": {n "@order": "date+",n "momentId@": "[]/Moment/id"n }n },n "praiseCount@": "/User[]/total",n "commentCount@": "/Comment-userId[]/total"n }n}',NULL,'','2019-09-08 07:17:30'),(1572174664812,88888,0,3,'部分功能总览','JSON','/get','{n "[]": {n "count": 5,n "page": 0,n "join": "</User/id@",n "Moment": {n "@order": "date+",n "@column": "id,userId;date_format(date,%Y-%m-%d %H:%m)",n "@explain": true,n "content~": "o",n "userId!": 82001,n "@combine": "userId!,content~"n },n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "[]": {n "count": 6,n "join": "@/User/id@",n "Comment": {n "@order": "date-",n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "DISTINCT id,name;concat(%,name,%):concat"n }n }n }n}',NULL,'','2019-10-27 11:11:04'),(1583173736243,88888,0,3,'批量修改-每项单独设置','JSON','/put','{n "Comment[]": [n {n "id": 1581271679641,n "content": "test"n },n {n "id": 1581314845034,n "momentId": 12,n "date": "2020-02-02"n }n ],n "tag": "Comment:[]"n}',NULL,'','2020-03-02 18:28:56'),(1583173841064,88888,0,3,'批量新增-每项单独设置','JSON','/post','{n "Moment[]": [n {n "content": "测试新增动态"n },n n {n "pictureList": [n "http://abc.com/3.png"n ]n },n {n "content": "test",n "praiseUserIdList": [n 82002n ],n "pictureList": [n "http://abc.com/2.png"n ]n }n ],n "tag": "Moment:[]"n}',NULL,'','2020-03-02 18:30:41'),(1583415965740,99999,0,3,'where子查询中多表关联筛选','JSON','/get','{n "User": {n "id@": {n "from": "Comment",n "join": "&/Moment/id@",n "Comment": {n "@column": "min(userId)"n },n "Moment": {n "id@": "/Comment/momentId",n "@column":""n }n }n },n "@explain": truen}',NULL,'','2020-03-05 13:46:05'),(1583510816154,99999,0,3,'复杂的子查询与关联查询','JSON','/get','{n "sql@": {n "from": "Comment",n "join": "&/Comment:to/userId@",n "Comment": {n "@column": "userId",n "content~": "a"n },n "Comment:to": {n "userId@": "/Comment/userId",n "@column": "",n "content~": "j"n }n },n "[]": {n "Moment": {n "userId{}@": {n "from": "User",n "User": {n "id{}@": "sql",n "@column": "id"n }n }n }n },n "@explain": truen}',NULL,'','2020-03-06 16:06:56'),(1583513151839,99999,0,3,'类似12306根据两站来查火车班次','JSON','/get','{ //类似 12306 根据始发站和到达站来过滤火车班次,班次和线路多对一,线路和站点多对多n "sql@": {n "from": "Comment",n "join": "&/Comment:to/userId@",n "Comment": { //假装是始发站n "@column": "userId",n "content~": "a" //假装是站点名n },n "Comment:to": { //假装是终点站n "userId@": "/Comment/userId",n "@column": "",n "content~": "j" //假装是站点名n }n },n "[]": {n "Moment": { //假装是班次n "userId{}@": {n "from": "User",n "User": { //假装是线路n "id{}@": "sql",n "@column": "id"n }n }n }n },n "@explain": truen}',NULL,'','2020-03-06 16:45:51'),(1584113823081,2000,0,3,'自连接返回数据错误','JSON','/get','{n "[]": {n "join": "&/Comment:to/id@",n "Comment": {}, //解决方案:加 "@column": "id,toId"n "Comment:to": {n "id@": "/Comment/toId",n "id>": 0n }n },n "@explain": truen}n/*n 这是一个 3.3.0, 3.8.6-4.0.0 都发现存在的 bug,n 事实上也是自从支持自连接(副表 Comment AS `to`)以来就存在。n 原因是对副表生成的 SQL 里表名和主表表名一样,导致 n AbstractSQLExecutor.onPutColumn 中 299 行n item = onPutColumn(config, rs, rsmd, index, item, i, config.isExplain() == false && hasJoin && i >= viceColumnStart ? childMap : null);n 488 行 if 走了第一个分支(应该走 else 来把副表的值存进 childMap)n finalTable = table;n 从而使 JOIN 查出来的主副表全部字段都在 521 行n finalTable.put(lable, getValue(config, rs, rsmd, tablePosition, table, columnIndex, lable, childMap));n 由于主副表有相同字段,导致后面 put 的副表字段替代了前面 put 的主表同名字段。n n 除了以上折中方案,还可以判断 AS 的副表别名来做区分,put 进 childMap。n*/',NULL,'','2020-03-13 15:37:03'),(1584117747580,2000,0,3,'全局默认字段失效','JSON','/login','{n "type": 0,n "phone": "13000082001",n "password": "123456",n "version": 1,n "remember": false,n "format": true, //失效n "defaults": { //失效n "format": true,n "@explain": true,n "@database": "POSTGRESQL",n "@schema": "sys"n }n}',NULL,'','2020-03-13 16:42:27'),(1584118278602,2000,0,3,'SIDE JOIN 实现可能有误','JSON','/get','{n "[]": {n "join": "^/User/id@",n "Comment": {n "momentId": 12n },n "User": {n "id@": "/Comment/toId",n "sex": 0n }n },n "@explain": truen}n/*n SIDE JOIN 实现可能有误,并且性能不大好。n Comment 的条件 A: momentId=12n User 的条件 B: sex=0n 理论上 NOT(A AND B) 等价于(A AND NOT B) OR (B AND NOT A) n 目前使用的是后者,当我想要改成前者,分别用对应的 SQL 放数据库执行,n 发现结果集不一样!n SELECT `Comment`.*, `User`.* FROM `sys`.`Comment` AS `Comment` INNER JOIN `sys`.`apijson_user` AS `User` ON `User`.`id` = `Comment`.`toId` WHERE ( NOT ( `Comment`.`momentId` = 12 AND `User`.`sex` = 0 ) ) LIMIT 10 OFFSET 0n SELECT `Comment`.*, `User`.* FROM `sys`.`Comment` AS `Comment` INNER JOIN `sys`.`apijson_user` AS `User` ON `User`.`id` = `Comment`.`toId` WHERE ( ( ( (`Comment`.`momentId` = 12) ) AND NOT ( ( (`User`.`sex` = 0) ) ) ) OR ( ( (`User`.`sex` = 0) ) AND NOT ( ( (`Comment`.`momentId` = 12) ) ) ) ) LIMIT 10 OFFSET 0n*/',NULL,'','2020-03-13 16:51:18'),(1584120971519,2020,0,3,'新增 WITH AS','JSON','/get','{ //看看关注的人最近有什么动态(分享、评论)n "sql@": {n "with": true, //生成 WITH(SELECT id ...) AS `sql`n "from": "User",n "User": {n "@column": "id",n "@role": "CONTACT"n }n },n "Moment[]": {n "Moment": {n "userId{}@": "sql",n "@order": "date-"n }n },n "Comment[]": {n "Comment": {n "userId{}@": "sql",n "@order": "date-"n }n },n "@explain": truen}',NULL,'','2020-03-13 17:36:11'),(1584120990337,2020,0,3,'新增 UNION','JSON','/get','{n "[]": {n "User": {n "name~": "a",n "tag~": "a",n "@combine": "name~,tag~", n "@union": 1 //将 @combine 中的 N 个 OR 连接字段用 UNION 替换,原本一条 SQL 需要拆分成 N 条 SQL 来 UNION n }n },n "@explain": truen}',NULL,'','2020-03-13 17:36:30'),(1584121026469,2020,0,3,'新增分布式执行','JSON','/get','{n "User": {n "@url": "http://apijson.cn:8080/get" //转发给其它服务器执行n },n "[]": {n "Comment": {n "userId@": "User/id"n }n },n "@explain": truen}',NULL,'','2020-03-13 17:37:06'),(1589859330200,1589859275450,1589859275450,3,'login','JSON','/login','{n "type": 0,n "phone": "13525569073",n "password": "123456",n "version": 1,n "remember": false,n "format": false,n "defaults": {n "@database": "MYSQL",n "@schema": "sys"n }n}',NULL,'','2020-05-19 03:35:30'),(1592545943722,1592544818327,1592544225995,3,'login','JSON','/login','{n "body": {n "personName": "杨家湖超限班长",n "Authenticated": true,n "UserName": "yjhcxbz",n "personMobile": "",n "iconList": [n "PTCL"n ],n "Token": "3dba223a3a9046f7abfffdddc9f93936",n "userOrgName": "杨家湖收费站",n "userId": "297edfab72c14e940172c1552d4b0002",n "userOrgId": "009429986"n },n "head": {n "clientId": null,n "ret": {n "retCode": "000000",n "retMsg": nulln },n "timestamp": "2020-06-19 11:46:52"n }n}n n',NULL,'','2020-06-19 05:52:23'),(1592546007877,1592544818327,1592544225995,3,'login11','JSON','/login','{n "body": {n "personName": "杨家湖超限班长",n "Authenticated": true,n "UserName": "yjhcxbz",n "personMobile": "",n "iconList": [n "PTCL"n ],n "Token": "3dba223a3a9046f7abfffdddc9f93936",n "userOrgName": "杨家湖收费站",n "userId": "297edfab72c14e940172c1552d4b0002",n "userOrgId": "009429986"n },n "head": {n "clientId": null,n "ret": {n "retCode": "000000",n "retMsg": nulln },n "timestamp": "2020-06-19 11:46:52"n }n}n n',NULL,'','2020-06-19 05:53:27'),(1593973492312,1593972128383,0,3,'login1','JSON','/login','{n "type": 0,n "phone": "13000082002",n "password": "123456",n "version": 1,n "remember": false,n "format": false,n "defaults": {n "@database": "MYSQL",n "@schema": "sys"n }n}',NULL,'','2020-07-05 18:24:52'),(1593973606841,1593972128383,0,3,'get1','JSON','/get','{n "User": {n "id": 82001n },n "[]": {n "Comment": {n "userId@": "User/id"n }n }n}n n',NULL,'','2020-07-05 18:26:46'),(1593973707836,1593972128383,0,3,'get1','JSON','/get','{n "User": {n "id": 82001n },n "[]": {//ooon "Comment": {n "userId@": "User/id"n }n }n}n n',NULL,'','2020-07-05 18:28:27'),(1596002514234,1596002416764,0,3,'get','JSON','/get','{n "type": 0,n "phone": "13000082002",n "password": "123456",n "version": 1,n "remember": false,n "format": false,n "defaults": {n "@database": "MYSQL",n "@schema": "sys"n }n}n n',NULL,'','2020-07-29 06:01:54'),(1596439230051,1596439187212,0,3,'login','JSON','/login','{n "type": 0,n "phone": "13000082002",n "password": "123456",n "version": 1,n "remember": false,n "format": false,n "defaults": {n "@database": "MYSQL",n "@schema": "sys"n }n}',NULL,'','2020-08-03 07:20:30'),(1602231365650,2020,0,3,'JOIN 对象支持包含多个 @ 引用赋值 的字段','JSON','/get','{ // 自动合并 ON Method.class = `Method:group`.class AND Method.package = `Method:group`.packagen "Method[]": {n "count": 0,n "join": "@/Method/class@,@/Method/package@",n "Method:group": {n "@column": "DISTINCT class",n "@order": "class+",n "@having": "length(class)>0",n "package*~": null,n "class*~": null,n "@combine": nulln },n "Method": {n "package@": "[]/Method/package",n "class@": "/Method:group/class",n "@column": "class,genericClassArgs",n "@order": "class+",n "arguments()": "getMethodArguments(genericClassArgs)"n }n }n}n n',NULL,'','2020-10-09 08:16:05'),(1607881786667,99999,0,3,'get','JSON','/get','{n "Comment[]": {n "Comment": {n "@column": "date,content;concat(id,^,<,>?|,toId,&,{},userId,LES+=)",n "@having": "to_days(date)%7=0"n }n },n "@explain": truen}n n',NULL,'','2020-12-13 17:49:46'),(1607881843319,99999,0,3,'复杂的 @having','JSON','/get','{n "Comment[]": {n "Comment": {n "@having": "concat(id,^,<,>?|,&,{},:[],DROP!)<=8^3*3.14-7/4+50"n }n },n "@explain": truen}n n',NULL,'','2020-12-13 17:50:43'),(1607881872995,99999,0,3,'最近7天','JSON','/get','{n "Comment": {n "@having": "to_days(now())-to_days(`date`)<=7",n "@raw": "@having"n },n "@explain": truen}n n',NULL,'','2020-12-13 17:51:12'),(1607881932306,99999,0,3,'@raw 自定义 SQL 片段','JSON','/get','{ // 类似 12306 根据始发站和到达站来过滤火车班次,班次和线路多对一,线路和站点多对多n "sql@": {n "from": "Comment",n "join": "&/Comment:to/userId@",n "Comment": { // 假装是始发站n "@column": "userId",n "content~": "a", // 假装是站点名n "momentId>": "to.momentId",n "@raw": "momentId>"n },n "Comment:to": { // 假装是终点站n "userId@": "/Comment/userId",n "@column": "",n "content~": "j" // 假装是站点名n }n },n "[]": {n "Moment": { // 假装是班次n "userId{}@": {n "from": "User",n "User": { // 假装是线路n "id{}@": "sql",n "@column": "id"n }n }n }n },n "@explain": truen}n n',NULL,'','2020-12-13 17:52:12'),(1608087204039,82001,0,3,'get','JSON','/get','{n "Moment": {n "id": 12n }n}',NULL,'','2020-12-16 02:53:24'),(1608995763278,99999,0,3,'SQL 函数与表达式','JSON','/get','{n "Comment[]": {n "Comment": {n "@column": "userId;(toId)%3=0;group_concat(DISTINCT +,id)",n "@having": "max(id)>100;userId%5>=1",n "@group": "userId,toId"n }n },n "@explain": truen}n n',NULL,'','2020-12-26 15:16:03'),(1612031683609,88888,0,2,'视图表 ViewTable 查单条记录 /get','JSON','/get','{n "ViewTable": {"id": 82001}n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683610,88888,0,2,'视图表 ViewTable 查列表带条件','JSON','/get','{n "ViewTable[]": {n "ViewTable": {n "toId": 0,n "content~": "a"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683611,88888,0,2,'视图表 ViewTable INNER JOIN Moment','JSON','/get','{n "[]": {n "join": "&/Moment/id@",n "ViewTable": {"toId":0},n "Moment": {"content~":"a",n "id@": "/ViewTable/momentId"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683612,88888,0,2,'视图表 ViewTable 子查询','JSON','/get','{n "ViewTable[]": {n "ViewTable": {n "momentId{}@": {n "from": "Moment",n "Moment": {n "@column": "id"n }n }n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683613,88888,0,2,'视图表 ViewTable LEFT JOIN Moment','JSON','/get','{n "[]": {n "join": "</Moment/id@",n "ViewTable": {},n "Moment": {n "id@": "/ViewTable/momentId"n }n }n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683614,88888,0,2,'全局关键词','JSON','/get','{n "[]": {n "count": 3,n "Moment": {},n n "User": {n "id@": "/Moment/userId",n "@column": "id,name,head"n },n "[]": {n "count": 6,n "Comment": {n "momentId@": "[]/Moment/id"n },n "User": {n "id@": "/Comment/userId",n "@column": "id,name"n }n }n },n "format": false,n "tag": "Moment[]",n "version": 0,n "@role": "CIRCLE",n "@database": "MYSQL",n "@schema": "sys",n "@explain": true,n "@cache": 0n}n n',NULL,'','2019-07-29 08:43:18'),(1612031683615,88888,0,2,'功能符:连续范围','JSON','/get','{"User[]":{"count":3,"User":{"date%":"2017-10-01,2018-10-01"}}}',NULL,'','2019-07-29 08:43:18');
/* SQLINES DEMO *** `Document` ENABLE KEYS */;
UNLOCK TABLES;
/* SQLINES DEMO *** NE=@OLD_TIME_ZONE */;
/* SQLINES DEMO *** E=@OLD_SQL_MODE */;
/* SQLINES DEMO *** _KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/* SQLINES DEMO *** CHECKS=@OLD_UNIQUE_CHECKS */;
/* SQLINES DEMO *** ER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/* SQLINES DEMO *** ER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/* SQLINES DEMO *** ON_CONNECTION=@OLD_COLLATION_CONNECTION */;
/* SQLINES DEMO *** ES=@OLD_SQL_NOTES */;
-- SQLINES DEMO *** 2021-06-21 23:26:18