Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 259be98

Browse files
committed
Fix Sql.In condition don't support skip and take by mysql.
1 parent 6f89909 commit 259be98

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/ServiceStack.OrmLite.MySql/MySqlDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public MySqlDialectProvider()
5555

5656
public override string GetLoadChildrenSubSelect<From>(SqlExpression<From> expr)
5757
{
58-
return $"SELECT * FROM ({base.GetLoadChildrenSubSelect(expr)}) AS COUNT";
58+
return $"SELECT * FROM ({base.GetLoadChildrenSubSelect(expr)}) AS SubQuery";
5959
}
6060
public override string ToPostDropTableStatement(ModelDefinition modelDef)
6161
{

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2264,7 +2264,14 @@ protected string ConvertInExpressionToSql(MethodCallExpression m, object quotedC
22642264
subSelect = paramsRegex.Replace(subSelect, renameParams[i].Item2 + "$1");
22652265
}
22662266

2267-
return $"{quotedColName} IN ({subSelect})";
2267+
if (DialectProvider.GetType().Name == "MySqlDialectProvider")
2268+
{
2269+
return $"{quotedColName} IN (SELECT * FROM ({subSelect}) SubQuery)";
2270+
}
2271+
else
2272+
{
2273+
return $"{quotedColName} IN ({subSelect})";
2274+
}
22682275
}
22692276

22702277
throw new NotSupportedException($"In({argValue.GetType()})");

0 commit comments

Comments
 (0)