dataview.selectdata
功能说明
描述
查询指定数据视图存放在数据库中的数据(支持图片/附件/手写签名的文件操作),支持部分mysql函数,请查看文档【支持的SQL函数】。
函数原型
dataview.selectdata(formAlias,fields,wheres=None,type=0)
复制
参数
名称 | 类型 | 描述 |
---|---|---|
formAlias | 字符型 | 数据视图别名,可以在数据视图设计界面中的”设置别名”中获取(支持跨应用取数据,格式为:"appid@表别名") |
fields | 数组型 | 查询字段,为数据视图的字段的别名,可以在数据视图设计界面中的”设置别名”中获取,["*"] 表示查询所有字段。具体参考示例 |
wheres | 数组型 | 查询条件,条件为数组格式,默认为空具体格式请点击 查询条件和排序规则 |
type | 整数型 | 默认为0 0.以列名关联的方式返回查询结果 1.以索引的方式返回查询结果 2.以列名关联的方式返回查询到的第一条记录 3.查询以索引的方式返回查询到的第一条记录 |
-
wheres 数据格式:
-
WHERE (单行文本 like "%111%") AND (多行文本 between "111" AND "222") GROUP BY 单行文本, 多行文本 ORDER BY 单行文本 DESC, 多行文本 ASC LIMIT 0, 20
{
AND={
{
name="单行文本",
val="%111%",
exp="like"
},
{
name="多行文本",
val={
"111",
"222"
},
exp="between"
}
},
ORDER={
{
name="单行文本",
mode="desc"
},
{
name="多行文本",
mode="asc"
}
},
GROUP={
"单行文本",
"多行文本"
},
LIMIT={
0,
20
}
}
复制
名称 描述 AND 指定where元素的连接方式(OR的格式和AND相同,具体格式请点击 查询条件和排序规则) ORDER 指定结果集的排序方式 GROUP 指定结果集的过滤字段 LIMIT 指定结果集的过滤行数 name 字段别名 val 字段对应的值,可以为单个或多个值 exp 连接字段 name 和 val 的表达式 mode 指定排序规则,"asc" 表示顺序排列,"desc" 表示倒序排列 -
AND,OR嵌套的 where 格式:
-
WHERE (会议室名称 = "会议室1") AND (((会议起始时间 >= "2019-08-13 10:40:00") AND (会议结束时间 <= "2019-08-14 10:40:10")) OR ((会议议题1 = "议题1内容") OR (会议议题2 = "议题2内容")))
{
"AND":[
{
"name":"单行文本",
"val":"%111%",
"exp":"like"
},
{
"name":"多行文本",
"val":{
"111",
"222"
},
"exp":"between"
}
],
"ORDER":[
{
"name":"单行文本",
"mode":"desc"
},
{
"name":"多行文本",
"mode":"asc"
}
],
"GROUP":[
"单行文本",
"多行文本"
],
"LIMIT":[
0,
20
]
}
复制
返回值
类型 | 描述 |
---|---|
数组型 | 根据参数中的type类型返回不同的格式的数组,获取失败返回空数组 0.以数组的方式返回查询结果 1.以索引组成的数组的方式返回查询结果 2.以数组的方式返回查询到的第一条记录 3.查询以索引组成的数组的方式返回查询到的第一条记录 |
- 数据格式:
[
{
"deleteTime":"",
"createTime":"2019-01-05 15:05:07",
"updateTime":"2019-01-11 11:00:38",
"单行文本":"abc",
"多行文本":"def",
"图片":[
{
"size":"85559",
"uploadTime":"2019-03-26T17:48:28Z",
"_id":"58f57658a48dae2e5f68952e",
"name":"1.jpg",
"mime":"image/jpeg",
"uploader":"547a48c50eccde5ac8c0883b",
"bucket":"pub-file",
"qnKey":"Fko6hnrcvUS7n4b6QKszWRDKMsVC"
}
],
"附件":[
{
"size":"79273",
"uploadTime":"2019-03-26T17:59:15Z",
"_id":"53b506717f9b4cd9d5e89e85",
"name":"1.txt",
"mime":"text/plain",
"uploader":"547a48c50eccde5ac8c0883b",
"bucket":"pub-file",
"qnKey":"FpTHlLKcZrGQuRFedYoSwnKWs6V4"
}
],
"手写签名":[
{
"_id":"5adf0f8e7f96c03842ae3f72",
"bucket":"pub-file",
"uploader":"",
"uploadTime":"2019-05-20T17:25:43Z",
"size":"98328",
"qnKey":"FhdH1pyNASeDYC3JwiJQB77vmJr2",
"name":"bbysignature_1558512038935.png",
"mime":"image/png"
}
],
"creator":{
"nickname":"bobo",
"id":"547a48c50eccde5ac8c0883b"
},
"deleter":"",
"id":"5e5057a78d478a699e99a7d8"
},
{
"deleteTime":"",
"createTime":"2019-01-11 11:00:49",
"updateTime":"2019-01-11 11:00:49",
"单行文本":"abc2",
"多行文本":"def2",
"图片":[],
"附件":[],
"creator":{
"nickname":"bobo",
"id":"547a48c50eccde5ac8c0883b"
},
"deleter":"",
"id":"58d0e3930170170b8953877e"
}
]
复制
名称 描述 nickname 数据的创建者对应的昵称 size 文件大小,单位:字节 name 文件名称 mime 文件类型 uploader 上传人id(手写签名里为空) uploadTime 上传时间 bucket 文件服务器的空间名称 qnKey 文件在服务器空间上的标识符
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
错误编码 | 错误信息 |
---|---|
1407 | api执行频率超出限制 |
1400 | 参数类型不正确 |
1300 | 参数不是数组类型 |
1305 | 参数不是关联数组 |
1313 | 参数非法 |
1506 | 连接数据库失败 |
1502 | 取表单字段失败 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1302 | 赋值失败 |
1513 | 条件字段不为关联数组 |
1508 | 非法字段别名 |
1504 | 不存在的字段 |
1582 | 非法的表达式 |
1505 | 不支持的函数 |
1587 | 查询超出范围 |
1504 | 不存在的字段 |
1533 | 数据库执行失败 |
1591 | 操作非法 |
1503 | 字段不是关联数组类型 |
支持的sql函数(只支持大写) | COUNT、MAX、MIN、AVG、SUM、NOW |
支持的sql比较关键字(只支持大写) | AND、OR、ORDER、GROUP(group by)、LIMIT |
其他:
- 所有表单查询api的结果集行数最多返回500条数据
- 所有表单api调用频率限制为1000次/分钟
示例
def test():
# name(字段别名), val(字段对应的值), exp(条件表达式) 为条件专有名称
# where组合表达式格式为: AND = [{"name" :"单行文本","val" :"单行文本1","exp" :"="},{"name" :"单行文本2","val" :"单行文本2","exp" :"="}]
#当条件只有1个时写法为:AND=[{"name":"单行文本","val":"单行文本1","exp":"="}]
# 普通查询
# 查询全部数据使用 ["*"]
fields=["单行文本"]
res=dataview.selectdata("测试表单",fields)
# select `单行文本` from `测试表单` LIMIT 0,500
fields=["单行文本"]
_limit=[0,500]
where={"LIMIT"=_limit}
res=dataview.selectdata("测试表单",fields,where)
print(res)
# select MAX(`单行文本`) from `测试表单`
# #开头表示sql函数, 支持的函数名称详情见备注
fields=["#MAX(单行文本)"]
res=dataview.selectdata("测试表单",fields)
print(res)
# select `单行文本` from `测试表单` where 单行文本 IN (1,2,3) AND 单行文本1 NOT IN (4,5,6)ONDER BY 单行文本 DESC
fields=["单行文本"]
_and=[{"name":"单行文本","val":[1,2,3],"exp":"="},{"name":"单行文本1","val":[4,5,6],"exp":"NOT IN"}]
_order=[{"name":"单行文本","mode":"desc"}]
where={"ORDER":_order,"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
# select `单行文本` from `测试表单` where 单行文本1 IS NULL AND 单行文本2 IS NOT NULL
fields=["单行文本"]
_and=[{"name":"单行文本1","val":"None","exp":"="},{"name":"单行文本2","val":"None","exp":"NOT IN"}]
where={"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
# select `单行文本` from `测试表单` where 单行文本 > '单行文本1' AND 单行文本 < '单行文本2';
fields=["单行文本"]
_and=[{"name":"单行文本","val":"单行文本1","exp":">"},{"name":"单行文本","val":"单行文本2","exp":"<"}]
where={"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
# select `单行文本` from `测试表单` where 单行文本1 BETWEEN '单行文本2' and '单行文本3';
fields=["单行文本"]
_and=[{"name":"单行文本1","val":{"单行文本2","单行文本3"},"exp":"BETWEEN"}]
where={"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
# select `单行文本` from `测试表单` where (单行文本 LIKE '%文本1%') and (单行文本 LIKE '%文本2%')
fields=["单行文本"]
_and=[{"name":"单行文本","val":"%文本1%","exp":"LIKE"},{"name":"单行文本","val":"%文本2%","exp":"LIKE"}]
where={"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
#select `单行文本` from `测试表单` where (单行文本='单行文本1') or (单行文本='单行文本2')
fields=["单行文本"]
_or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"="}]
where={"OR":_or}
res=dataview.selectdata("测试表单",fields,where)
print(res)
#select `单行文本` from `测试` where ( 单行文本='单行文本1' AND ( 单行文本='单行文本1' OR 单行文本 !='单行文本2' ))
fields=["单行文本"]
_or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"!="}]
_and=[{"name":"单行文本","val":"单行文本1","exp":"="},"OR":_or}
where={"AND":_and}
res=dataview.selectdata("测试表单",fields,where)
print(res)
#select `单行文本` from `测试表单` where ( 单行文本='单行文本1' AND ( 单行文本='单行文本1' OR 单行文本 !='单行文本2' )) GROUP BY 单行文本,多行文本 ORDER BY 单行文本 desc,多行文本 DESC LIMIT 0,20
fields=["单行文本","多行文本"]
_or=[{"name":"单行文本","val":"单行文本1","exp":"="},{"name":"单行文本","val":"单行文本2","exp":"="}]
_and=[{"name":"单行文本","val":"单行文本1","exp":"="},"OR":_or}
_order=[{"name":"单行文本","mode":"desc"},{"name":"多行文本","mode":"asc"}]
_group=["单行文本","多行文本"]
_limit=[0,20]
where={"AND":_and,"GROUP":_group,"ORDER":_order,"LIMIT":_limit}
res=dataview.selectdata("测试表单",fields,where)
print(res)
复制
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无
目录