JsonArrayAny生成sql不正确。 返回

版本:5.1.4.188
SELECT `m`.* FROM `rule_main` `m` Left JOIN `rule_condition` `c` ON ( `m`.`Id` = `c`.`PId` ) WHERE (( `m`.`IsDelete` = 0 ) AND ( `c`.`IsDelete` = 0 )) AND (( `c`.`ClassCondition` = 4 ) AND JSON_CONTAINS(`c`.`ConditionValue`, '"System.Int32[]"')) ORDER BY `m`.`CreateTime` DESC LIMIT 0,20
转Json会是:JSON_CONTAINS(`c`.`ConditionValue`, '"[7]"'))
热忱回答(6)
-
一会我就打哭 VIP0
2周前补充下数据集如下,查询条件是动态的数组
[7]
[7,10]
[7,10,30]
0 回复 -
fate sta VIP0
2周前https://www.donet5.com/Home/Doc?typeId=2366
按提问模版写个可以重现的DEMO
0 回复 -
fate sta VIP0
2周前JSON_CONTAINS(`c`.`ConditionValue`, '"System.Int32[]"')) 正常不会生成这个SQL
0 回复 -
fate sta VIP0
2周前jsonarray(第一个参数是json字段,第二个参数是value) ,你这个看起来是反的。 第二个参数反而是个数组
0 回复 -
fate sta VIP0
2周前所以你可能要改成这样
&& sClassId.Contains(c.xxxValue)
0 回复 -
一会我就打哭 VIP0
2周前我看来了看MysqlSql的JSON:JSON_OVERLAPS与JSON_CONTAINS(c.ConditionValue, '[7,8]'),是支持数组数据查询的。
[7]
[7,10]
[8,30]
期初想着存数组方便,下次注意我注意,再按【提问模版】提问。
0 回复