diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/CodeFirst/MySqlCodeFirst.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/CodeFirst/MySqlCodeFirst.cs index bd45e64f9..32fa5fefa 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/CodeFirst/MySqlCodeFirst.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/CodeFirst/MySqlCodeFirst.cs @@ -25,6 +25,10 @@ namespace SqlSugar.MySqlConnector DbColumnInfo dbColumnInfo = this.EntityColumnToDbColumn(entityInfo, tableName, item); columns.Add(dbColumnInfo); } + if (entityInfo.IsCreateTableFiledSort) + { + columns = columns.OrderBy(c => c.CreateTableFieldSort).ToList(); + } } this.Context.DbMaintenance.CreateTable(tableName, columns,true); } @@ -42,7 +46,8 @@ namespace SqlSugar.MySqlConnector DefaultValue = item.DefaultValue, ColumnDescription = item.ColumnDescription, Length = item.Length, - DecimalDigits=item.DecimalDigits + DecimalDigits=item.DecimalDigits, + CreateTableFieldSort = item.CreateTableFieldSort }; GetDbType(item, propertyType, result); if (result.DataType.Equals("varchar", StringComparison.CurrentCultureIgnoreCase) && result.Length == 0) diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs index 8897225ad..2b5a0ec8d 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -269,7 +269,7 @@ namespace SqlSugar.MySqlConnector { get { - return "SELECT count(*) FROM information_schema.statistics WHERE index_name = '{0}'"; + return "SELECT count(*) FROM information_schema.statistics WHERE index_name = '{0}' and index_schema = '{1}'"; } } #endregion @@ -308,7 +308,9 @@ namespace SqlSugar.MySqlConnector } var oldDatabaseName = this.Context.Ado.Connection.Database; var connection = this.Context.CurrentConnectionConfig.ConnectionString; - Check.Exception(Regex.Split(connection,oldDatabaseName).Length > 2, "The user name and password cannot be the same as the database name "); + Check.ExceptionEasy(Regex.Split(connection,oldDatabaseName).Length > 2 + , "The user name and password cannot be the same as the database name ", + " 创建数据库失败, 请换一个库名,库名不能 password 或者 username 有重叠 "); connection = connection.Replace(oldDatabaseName, "mysql"); var newDb = new SqlSugarClient(new ConnectionConfig() { diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlBlukCopy.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlBlukCopy.cs index 6e4ead42c..a72728b68 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlBlukCopy.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlBlukCopy.cs @@ -176,7 +176,7 @@ namespace SqlSugar.MySqlConnector { sb.Append(row[colum].ObjToDate().ToString("yyyy-MM-dd HH:mm:ss.fff")); } - else if (colum.DataType == UtilConstants.DateType && row[colum] != null && row[colum] == DBNull.Value) + else if (row[colum] == null || row[colum] == DBNull.Value) { sb.Append("NULL"); } diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlExpressionContext.cs index f75efc99b..64c130407 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -14,6 +14,10 @@ namespace SqlSugar.MySqlConnector } public class MySqlMethod : DefaultDbMethod, IDbMethods { + public override string GetStringJoinSelector(string result, string separator) + { + return $"group_concat({result} separator '{separator}') "; + } public override string DateDiff(MethodCallExpressionModel model) { var parameter = model.Args[0]; @@ -146,7 +150,14 @@ namespace SqlSugar.MySqlConnector { var parameter = model.Args[0]; var parameter1 = model.Args[1]; - return string.Format("IFNULL({0},{1})", parameter.MemberName, parameter1.MemberName); + if (parameter1.MemberValue is bool) + { + return string.Format("IFNULL(CAST({0} as SIGNED),{1})", parameter.MemberName, parameter1.MemberName); + } + else + { + return string.Format("IFNULL({0},{1})", parameter.MemberName, parameter1.MemberName); + } } public override string GetDate() { diff --git a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlQueryBuilder.cs b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlQueryBuilder.cs index 1278400d7..86c9810ef 100644 --- a/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlQueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar.MySqlConnectorCore/MySql/SqlBuilder/MySqlQueryBuilder.cs @@ -53,6 +53,10 @@ namespace SqlSugar.MySqlConnector } else if (Skip != null && Take != null) { + if (Skip == 0 && Take == 1 && this.OrderByValue == "ORDER BY NOW() ") + { + this.OrderByValue = null; + } if (this.OrderByValue == "ORDER BY ") this.OrderByValue += GetSelectValue.Split(',')[0]; result = string.Format(PageTempalte, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, GetOrderByString, Skip.ObjToInt() > 0 ? Skip.ObjToInt() : 0, Take); } @@ -111,7 +115,7 @@ namespace SqlSugar.MySqlConnector } public override string ToCountSql(string sql) { - if (this.GroupByValue.HasValue()) + if (this.GroupByValue.HasValue()||this.IsDistinct) { return base.ToCountSql(sql); }