我的应用数据库是mariadb,在lowcoder的query中执行如下SQL:
UPDATE ci_atom_tag
SET UPDATED_BY='{{url.query.o_acct_id}}'
, UPDATED_TIME=CURRENT_TIMESTAMP()
, AT_FLAG_COD='1'
WHERE TENANT_ID='{{url.query.o_tenant_id}}' AND ATOM_TAG_PID IN ({{sids}});
然而通过搜集mariadb的mysql.log日志,发现执行的语句是:
SET UPDATED_BY='cust009'
, UPDATED_TIME=CURRENT_TIMESTAMP()
, AT_FLAG_COD='1'
WHERE TENANT_ID='787f23f8979f4ebb92d0c255a7b4ab6f' AND ATOM_TAG_PID IN ('1fea3aa679cd11eead980242ac110002'',''1fea3a8079cd11eead980242ac110002')
即lowcoder传数据给数据库的时候,默认给字符串首尾加了单引号,中间有引号的地方,也默认加了单引号
如果sids的内容是1fea3aa679cd11eead980242ac110002,1fea3a8079cd11eead980242ac110002
传给数据库的内容是:
SET UPDATED_BY='cust009'
, UPDATED_TIME=CURRENT_TIMESTAMP()
, AT_FLAG_COD='1'
WHERE TENANT_ID='787f23f8979f4ebb92d0c255a7b4ab6f' AND ATOM_TAG_PID IN ('1fea3aa679cd11eead980242ac110002,1fea3a8079cd11eead980242ac110002')
Is there an existing issue for this?
Current Behavior
我的应用数据库是mariadb,在lowcoder的query中执行如下SQL: UPDATE ci_atom_tag SET UPDATED_BY='{{url.query.o_acct_id}}' , UPDATED_TIME=CURRENT_TIMESTAMP() , AT_FLAG_COD='1' WHERE TENANT_ID='{{url.query.o_tenant_id}}' AND ATOM_TAG_PID IN ({{sids}});
其中in子句的{{sids}}的取值如下: 1fea3aa679cd11eead980242ac110002','1fea3a8079cd11eead980242ac110002
然而通过搜集mariadb的mysql.log日志,发现执行的语句是: SET UPDATED_BY='cust009' , UPDATED_TIME=CURRENT_TIMESTAMP() , AT_FLAG_COD='1' WHERE TENANT_ID='787f23f8979f4ebb92d0c255a7b4ab6f' AND ATOM_TAG_PID IN ('1fea3aa679cd11eead980242ac110002'',''1fea3a8079cd11eead980242ac110002') 即lowcoder传数据给数据库的时候,默认给字符串首尾加了单引号,中间有引号的地方,也默认加了单引号
如果sids的内容是1fea3aa679cd11eead980242ac110002,1fea3a8079cd11eead980242ac110002 传给数据库的内容是: SET UPDATED_BY='cust009' , UPDATED_TIME=CURRENT_TIMESTAMP() , AT_FLAG_COD='1' WHERE TENANT_ID='787f23f8979f4ebb92d0c255a7b4ab6f' AND ATOM_TAG_PID IN ('1fea3aa679cd11eead980242ac110002,1fea3a8079cd11eead980242ac110002')
缺陷的场景总结,如果传进去是一个字符串,系统遇到引号就给加一个引号。如果直接给的是list,系统会自动给元素加双引号,逗号隔开各个元素,生成一个类似"aa","bb"的字符串。
Expected Behavior
使用字符串传递数据的时候,平台不要再对字符串进行处理。
Steps to reproduce
NONE
Environment
No response
Additional Information
No response