Sql参数化异常 返回
select
a.ContentType as '类型',
a.BucketName as '桶',
count(1) as '数量'
from Sys_Attachment a
where not a.IsDeleted=1 AND `a`.`ContentType` = @Condita_ContentType0 AND `a`.`BucketName` = @Condita_BucketName0
group by a.ContentType,a.BucketName HAVING count(1) >= @Conditcount(1)0

热忱回答(4)
-
fate sta VIP0
2026/6/23代码怎么写的
0 回复 -
fry VIP0
2026/6/23@fate sta:
var modelSql = sqlSugarProvider.Utilities.ConditionalModelsToSql([
new ConditionalModel
{
FieldName = nameof(ICreated.CreateId),
ConditionalType = ConditionalType.Equal,
FieldValue = userId
//CSharpTypeName = nameof(System.Data.DbType.String)
}
这种写法生成的条件,参数化的SQL,然后
sqlSugarProvider.Ado.SqlQueryAsyn<>(sql,new List<SugarParameter>()) 这种执行的
你那边底层生成参数化的时候,HAVING count(1) >= @Conditcount(1)0 带有括号,mysql不支持这种带括号的,可能是没考虑到聚合的条件做查询
Utilities.ConditionalModelsToSql生成参数化的时候,没有考虑到如果是聚合的列,可能包含有括号,比如:子查询聚合,外面的查询用到了count(1) 做参数条件 ,比如:count(1)>=10
0 回复 -
fate sta VIP0
2026/6/23IsCorrectErrorSqlParameterName:字段有特殊字符导致SQL参数错误的兼容配置(性能有影响,可以通过修改配置局部启用 db.CurrentConfig.xxx.xx=true 这样)
在你的查询前面修改一下db的配置,让他支持特殊字符
0 回复 -
fry VIP0
2026/6/24@fate sta:好的
0 回复