mysql5.7groupby返回第一条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql5.7groupby返回第一条相关的知识,希望对你有一定的参考价值。

参考技术A 命令错误。在mysql5.7数据库中,使用命令返回groupby是提示的命令错误,请重新尝试。MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。

.NET 连接器仅返回第一条记录

【中文标题】.NET 连接器仅返回第一条记录【英文标题】:.NET Connector only returns first record 【发布时间】:2013-03-28 01:47:35 【问题描述】:

我有一个奇怪的“错误/错误”,在 .NET 连接器上只返回一条记录,而有 5 条记录。 MySQL 命令行也返回 1。这是我真正坚持的代码,我尝试创建一个客户端-服务器并让客户端从服务器计算机上的数据库登录:

代码:

string strConnect = "server=localhost;user=root;password=xxxx;database=MoopleDEV";
string query = "SELECT name FROM accounts;";

using (MySqlConnection connection = new MySqlConnection(strConnect))
using (MySqlCommand command = new MySqlCommand(query, connection))
using (MySqlDataReader reader = command.ExecuteReader())

    connection.Open();

    while (reader.Read())
    
        Console.WriteLine(reader.GetString("name"));
    

    connection.Close();

注意:它还在 MySQL 命令行客户端仅返回“iVision”。有谁知道该怎么做? Ps:它不会崩溃或返回任何异常。

【问题讨论】:

您确定查看的是同一个数据库吗?您谈论“登录到服务器计算机”,但您的连接字符串指定了“localhost”(您自己的计算机) 哦,是的,服务器和客户端是在我自己的计算机上调试的,并且我的计算机上正在运行 MySQL DB。 (这是服务器程序将在服务器计算机上运行的想法) 你为什么要使用reader.GetString 我已经看到太多问题了确保您确实在查看正确的 DB database=MoopleDEV 可能不正确或指向物理机上的不同 IP 地址或位置 还有 reader.GetString() 需要一个整数作为列索引而不是字符串名称(至少在 SqlDataReader 中) @Steve 您可以输入索引或列名。 【参考方案1】:

创建阅读器后,您将重新打开连接。在创建命令对象之前移动连接打开语句。

试试这个:

using (MySqlConnection connection = new MySqlConnection(strConnect))

    connection.Open();
    using (MySqlCommand command = new MySqlCommand(query, connection))
    using (MySqlDataReader reader = command.ExecuteReader())
    

        while (reader.Read())
        
            Console.WriteLine(reader.GetString("name"));
        
    
    connection.Close();

【讨论】:

你是什么意思?我不重新打开吗?还是你的意思是 MySQLCommand 会自动打开连接? 一旦你说command.ExecuteReader(),连接就会自动打开。然后,在打开的阅读器范围内,调用connection.Open(),它会切断并重新打开连接,但是阅读器的数据流已经被切断了。在您调用 reader.Read() 之前,流中有一条记录似乎很奇怪。不过,这就是你得到的。 我不知道我是不是那么愚蠢,但您只将 connection.Close() 放在 using 语句的末尾,这甚至不需要,因为它会自动关闭和处置。对不起,如果我犯了一个愚蠢的错误哈哈 是的。它是可选的。我只是出于习惯。【参考方案2】:

IVision 我希望这会给你一个想法

你为什么使用 reader.GetString 我已经看到太多问题了,为什么不使用 (string)reader["name"] 方法,当你运行查询时,手动运行查询时返回多少行,还要确保你真的查看正确的 DB database=MoopleDEV 可能不正确或指向物理机上的不同 IP 地址或位置。我还将我的本地数据库实例命名为实际的 Name 也会减少混淆

【讨论】:

就像我已经评论过您的评论一样,localhost 不知何故无法正常工作。如果我输入 127.0.0.1 作为 IP 它可以正常工作:) 谢谢你给我带来的想法 :) (PS:reader[] 顺便说一句:P)

以上是关于mysql5.7groupby返回第一条的主要内容,如果未能解决你的问题,请参考以下文章

返回子查询中的最后一条记录 - MySQL

mybatis 关联查询时,从表只返回第一条记录解决办法

mysql存储过程 把SQL语句返回结果赋给一个变量,该SQL语句返回的结果不止一条,该怎么写,新手,求指教!

mysql中如何查询表的第一条和最后一条记录

mysql分组排序,取每组第一条数据

MYSQL中查讯咋查第一条记录!