Mysql 如何在一次查询或往返中在同一个表上选择两次?

Mysql 如何在一次查询或往返中在同一个表上选择两次?,mysql,c#-4.0,Mysql,C# 4.0,好的,下面是我尝试过的代码片段: private static void CheckForChanges(MySqlConnection connection) { DateTime hair = DateTime.Parse(SmartStyleDataset.Tables["Hair"].Compute("MAX(lastUpdated)", null).ToString()); DateTime cloths = DateTime.Parse

好的,下面是我尝试过的代码片段:

    private static void CheckForChanges(MySqlConnection connection)
    {
        DateTime hair = DateTime.Parse(SmartStyleDataset.Tables["Hair"].Compute("MAX(lastUpdated)", null).ToString());
        DateTime cloths = DateTime.Parse(SmartStyleDataset.Tables["Cloths"].Compute("MAX(lastUpdated)", null).ToString());
        DateTime accessories = DateTime.Parse(SmartStyleDataset.Tables["Accessories"].Compute("MAX(lastUpdated)", null).ToString());
        DateTime cosmetics = DateTime.Parse(SmartStyleDataset.Tables["Cosmetics"].Compute("MAX(lastUpdated)", null).ToString());

        List<String>[] NewRows = { new List<String>(), new List<String>(), new List<String>(), new List<String>() };   

        using (var command = connection.CreateCommand())
        {
            connection.Open();
            command.CommandText = 
                 "SELECT * "
                + "FROM smartstyle.table_changes_logger "
                + "WHERE  Updated > @accessories AND Table = 'accessories' ; "
                + "SELECT * "
                + "FROM smartstyle.table_changes_logger "
                + "WHERE  Updated > @cosmetics AND Table = 'cosmetics' ; "
                + "SELECT * "
                + "FROM smartstyle.table_changes_logger "
                + "WHERE  Updated > @cloths AND Table = 'cloths' ; "
                + "SELECT * "
                + "FROM smartstyle.table_changes_logger "
                + "WHERE  Updated > @hair AND Table = 'hair'";

            command.Parameters.Add("@cloths", MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value = cloths.ToString("yyyy-MM-dd HH:mm:ss");
            command.Parameters.Add("@hair", MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value = hair.ToString("yyyy-MM-dd HH:mm:ss");
            command.Parameters.Add("@accessories", MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value = accessories.ToString("yyyy-MM-dd HH:mm:ss");
            command.Parameters.Add("@cosmetics", MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value = cosmetics.ToString("yyyy-MM-dd HH:mm:ss");

            using (var reader = command.ExecuteReader())
            {
                do
                {
                    while (reader.Read())
                    {
                        NewRows[0].Add(reader.GetString(1));
                        NewRows[1].Add(reader.GetString(2));
                        NewRows[2].Add(reader.GetString(3));
                        NewRows[3].Add(reader.GetString(4));
                    }

                } while (reader.NextResult());

            }
        }
 }
private static void CheckForChanges(MySqlConnection)
{
DateTime hair=DateTime.Parse(SmartStyleDataset.Tables[“hair”].Compute(“MAX(lastUpdated)”,null.ToString());
DateTime Clots=DateTime.Parse(SmartStyleDataset.Tables[“Clots”].Compute(“MAX(lastUpdated)”,null.ToString());
DateTime accessories=DateTime.Parse(SmartStyleDataset.Tables[“accessories”].Compute(“MAX(lastUpdated)”,null.ToString());
DateTime cosmetics=DateTime.Parse(SmartStyleDataset.Tables[“cosmetics”].Compute(“MAX(lastUpdated)”,null.ToString());
List[]NewRows={new List(),new List(),new List(),new List()};
使用(var command=connection.CreateCommand())
{
connection.Open();
command.CommandText=
“选择*”
+“从smartstyle.table\u更改\u记录器”
+“其中更新>@附件和表=‘附件’;”
+“选择*”
+“从smartstyle.table\u更改\u记录器”
+“其中更新>@化妆品和表='化妆品'
+“选择*”
+“从smartstyle.table\u更改\u记录器”
+“其中更新>@Cloth AND Table='Cloth'
+“选择*”
+“从smartstyle.table\u更改\u记录器”
+“其中更新>@hair AND Table='hair';
command.Parameters.Add(“@cloth”,MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value=cloth.ToString(“yyyy-MM-dd-HH:MM:ss”);
command.Parameters.Add(“@hair”,MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value=hair.ToString(“yyyy-MM-dd-HH:MM:ss”);
command.Parameters.Add(“@accessories”,MySql.Data.MySqlClient.MySqlDbType.Timestamp).Value=accessories.ToString(“yyyy-MM-dd-HH:MM:ss”);
command.Parameters.Add(“@cosmetics”,MySql.Data.MySqlClient.MySqlDbType.Timestamp)。Value=cosmetics.ToString(“yyyy-MM-dd HH:MM:ss”);
使用(var reader=command.ExecuteReader())
{
做
{
while(reader.Read())
{
新行[0]。添加(reader.GetString(1));
新行[1].Add(reader.GetString(2));
新行[2].Add(reader.GetString(3));
新行[3].Add(reader.GetString(4));
}
}while(reader.NextResult());
}
}
}
但是这不起作用,我从mysql中得到以下一般错误,我不明白 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在“Table=”附件“附近使用的正确语法;从smartstyle.table\u changes\u logger中选择*,其中Upd'位于第1行

您需要像
表格
那样用反勾号转义

SELECT * 
FROM smartstyle.table_changes_logger 
WHERE  Updated > @accessories 
AND `Table` = 'accessories'