场景:某表有 4 条记录,4 记录的某文本字段分别为“A,B,D,E”,现在想把数据连起来,即加个本表关联字段,用工作流填入“A→B,B→D,D→E,E→ 空”,发现无法实现。
因为:工作流里对于文本字段,筛选方法只有“等于,开头是”之类的,没有“大于”可选,导致记录 B 上的工作流无法定位到记录 D。
有人说可以把数据全取出来,发现记录 B 是第 2 条数据后找第 3 条数据,这个办法在数据量超大时就不行了。
我觉得这是一个非常基础的功能,不知为何明道云没有此功能,难道它会引发什么风险吗?
希望能加上字符串比较的功能,或告知不加的理由。
举例 1:一场考试以 ABCDE 来计分,拿到全班同学的考试成绩,想知道某学生是第几名(或并列第几名)。
举例 2:一系列行为日志记录,ID 编码格式是定长的“事务类型 + 自增计数”,想知道某人做了某行为之后又做了什么。
多发生于数据分析,特别是要分析其他系统的脏数据时。
若排序依据字段相同,它们的名次紧挨着就行,视为有多个解,都算正确。
这算是个小众需求吧,遇到记录是 A,B,D,D,E,E 怎么办呢,这就是不是一个简单字符串比较能解决的
感觉这是你单方面需要的功能吧?
系统要改进的太多了,你看一下我最新的一个贴子。官方还没有回应呢。
我就是希望明道能增加这个“字符串比较”的功能。
你提供的绕行方法很难,一定程度支持了我的观点,谢谢。
亲,你是真问,还是找 BUG 呀。
如果有米就用子流程,每次更新 1000 个,循环调用。
如果没有米就用循环,每次更新 100 个,循环调用。
然后怎么更新这 1 万条数据呢? 也调用接口,发 1 万次 post 请求么?
代码段是有最久执行时间限制的哦。
字符串比较是一个很耗性能的事情,投入产出比很低
用 API 取值,循环取出来存在字典里。
pageIndex=1
sdata['pageIndex']=pageIndex
s_people={}
res=requests.post(url=url,headers=headers,data=json.dumps(sdata))
dict1=json.loads(res.text)['data']['rows']
for value in dict1:
s_people[value['67d13f3a185df0b74a494e6c']]=value['67e4f1cdfd41db1c814eeaa0']
while len(dict1)==50:
pageIndex += 1
sdata['pageIndex'] = pageIndex
res=requests.post(url=url,headers=headers,data=json.dumps(sdata))
dict1=json.loads(res.text)['data']['rows']
for value in dict1:
s_people[value['67d13f3a185df0b74a494e6c']]=value['67e4f1cdfd41db1c814eeaa0']
pageIndex += 1
怎么把 1 万条数据传递给代码块? 你试试。
用高级语言还解决不掉?我不太相信呀。
已写明是不行的,数据量超大时。
可以用代码块,数组比较
你简单点,数据同步到 SQL,用 python 或者 node 或者 c#\java 写个 API 在明道云里调用。。。先把问题解决了。。你这个需求个人觉得是比较冷门的,估计优先级不会高
现在只能,把数据导出,在 Excel 里算出序号数值。再导入,用“记录 ID”更新“序数”字段。之后就能做“Where 序数 >'2' Order by 序数 Limit 1”就能取到 3,并反推成 D 了。
大家看,数值字段就能行,文本字段为啥不给行。
所以我说要有一个文本比较功能。
实现 Select ... Where Name>'B' Order by Name Limit 1 功能,就能直接找到下一条了,不用把所有数据的序号跑出来。
这一万条怎么选出来?明道本身就不能直接处理 1 万数据啊
当然更狠的方法也有,直接用 webhook 循环 100 次,拿到文本,拼接成 1 万条的数组,然后用代码块比较,或者提前缓存这 1 万的文本。。得结合场景来
给定 1 万条数据中的 1 条,让你找该数据的下一条,咋弄。
4 条只是举例,实际有 1 万条。 值也不止 4 个,有几千个,不能穷举。
获取记录时,按照这一列做升序(大写字母是可以做升序或降序排序),可以么,然后就按照你获取的多条记录顺序来依次处理?
![image.png]()
另外,也可以试下,做一个下拉来映射,你的文本还保留,只不过通过这一列,可以找到下拉项,进而可以得到你设定的数值,然后用这个数值做下比较。
加个“序数”字段对吧,加不了。
因为不同业务有不同的排序规则,保存该数据时不知后续业务要按什么排序。
没看懂,。。你是要比较大小吗。。那个记录里为啥不加个数值字段呢。。