表格查询自定义语句问题 返回
[{
"ConditionalList": [{
"Key": -1,
"Value": {
"FieldName": "RpmCfgs.Rpm",
"FieldValue": "2000",
"ConditionalType": 0
}
}, {
"Key": 1,
"Value": {
"FieldName": "RpmCfgs.Rpm",
"FieldValue": "0",
"ConditionalType": 2
}
}]
}]

把2个连续的改为自定义sql后,这个key好像未起作用。连接符没有了。第二个使用正常构造的话,key又会起作用。
热忱回答(4)
-
hp9999 VIP0
2026/4/16经测试自定义sql,不考虑key,要自己判断的呀?
0 回复 -
hp9999 VIP0
2026/4/16。
0 回复 -
fate sta VIP0
2026/4/17这个我看一下。
0 回复 -
hp9999 VIP0
1个月前@fate sta
用ai检查了问题Bug 确认
是的,这是 SqlSugar 的 bug。 在使用
List<IConditionalModel>生成 SQL 时,当条件列表中包含FieldNameSql(自定义SQL)条件时,SqlSugar 不会在该条件与后续条件之间自动添加 AND 连接符。根本原因
SqlSugar 在扁平
ConditionalModel列表格式下,对FieldNameSql类型的条件(FieldName = UtilMethods.FieldNameSql(),ConditionalType = Equal)的处理方式是直接将FieldValue作为原始 SQL 插入,不会在前后自动添加 AND/OR 连接符。而普通条件之间会自动添加 AND。具体行为:
条件组合 SqlSugar 行为 Normal + Normal 自动加 AND FieldNameSql + Normal 不加 AND Normal + FieldNameSql 不加 AND FieldNameSql + FieldNameSql 不加 AND 0 回复