From 2c5d353b4f7302a2326793dd8d0d03e8f29b7fb3 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 14 Jul 2023 11:53:02 +0800 Subject: [PATCH] Synchronization code --- .../DbMethods/DefaultDbMethod.cs | 4 ++-- .../SqlBuilder/MySqlExpressionContext.cs | 24 +++++++++---------- .../SqlBuilder/SqlServerExpressionContext.cs | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 8d8eb88bf..f37b7c0bb 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -1016,14 +1016,14 @@ namespace SqlSugar { var parameterNameA = mode.Args[0].MemberName; var parameterNameB= mode.Args[1].MemberName; - return $" TRIM(BOTH "+ parameterNameB + " FROM "+ parameterNameA + ") "; + return @$" CASE WHEN RIGHT({parameterNameA}, 1) = {parameterNameB} THEN LEFT({parameterNameA}, LENGTH({parameterNameA}) - 1) ELSE {parameterNameA} END "; } public virtual string TrimStart(MethodCallExpressionModel mode) { var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; - return $" LTRIM(BOTH " + parameterNameB + " FROM " + parameterNameA + ") "; + return @$" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END "; } } } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs index 248dbea86..f6efc1468 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -245,18 +245,18 @@ namespace SqlSugar return $" JSON_CONTAINS({model.Args[0].MemberName},'{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}')"; } } - public override string TrimEnd(MethodCallExpressionModel mode) - { - var parameterNameA = mode.Args[0].MemberName; - var parameterNameB = mode.Args[1].MemberName; - return $" TRIM(TRAILING {parameterNameA} FROM {parameterNameB}) "; - } - public override string TrimStart(MethodCallExpressionModel mode) - { + //public override string TrimEnd(MethodCallExpressionModel mode) + //{ + // var parameterNameA = mode.Args[0].MemberName; + // var parameterNameB = mode.Args[1].MemberName; + // return $" TRIM(TRAILING {parameterNameA} FROM {parameterNameB}) "; + //} + //public override string TrimStart(MethodCallExpressionModel mode) + //{ - var parameterNameA = mode.Args[0].MemberName; - var parameterNameB = mode.Args[1].MemberName; - return $" TRIM(LEADING {parameterNameA} FROM {parameterNameB}) "; - } + // var parameterNameA = mode.Args[0].MemberName; + // var parameterNameB = mode.Args[1].MemberName; + // return $" TRIM(LEADING {parameterNameA} FROM {parameterNameB}) "; + //} } } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs index 21da84193..61f56d1b3 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs @@ -113,14 +113,14 @@ namespace SqlSugar { var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; - return $" RTRIM(REPLACE({parameterNameA}, {parameterNameB}, '')) "; + return $"CASE WHEN RIGHT({parameterNameA}, 1) = {parameterNameB} THEN LEFT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END"; } public override string TrimStart(MethodCallExpressionModel mode) { var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; - return $" LTRIM(REPLACE({parameterNameA},{parameterNameB}, '')) "; + return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END "; } }