mysql - MAX() 未在 MySQL 中显示预期结果

标签 mysql

真的在这里被难住了,所以任何建议都将不胜感激。

我在 clients 表中,对于 ID = 257 的客户端,我有以下记录:

SELECT ref, ID, client_name, data_1 FROM clients WHERE ID = 257

+------+-----+-------------+--------+
| ref  | ID  | client_name | data_1 |
+------+-----+-------------+--------+
| 1123 | 257 | Client257   | 0      |
| 1124 | 257 | Client257   | 163    |
+------+-----+-------------+--------+

现在,如果我将一个简单的 MAX() 添加到 ref 字段,我会得到:

SELECT MAX(ref), ID, client_name, data_1 FROM clients WHERE ID = 257

+------+-----+-------------+--------+
| ref  | ID  | client_name | data_1 |
+------+-----+-------------+--------+
| 1124 | 257 | Client257   | 0      |
+------+-----+-------------+--------+

我应该得到:

+------+-----+-------------+--------+
| ref  | ID  | client_name | data_1 |
+------+-----+-------------+--------+
| 1124 | 257 | Client257   | 163    |
+------+-----+-------------+--------+

有人能解释一下吗?我应该怎么做才能获得预期的结果?

编辑:

根据@Ilion 的要求添加了SHOW CREATE TABLE clients 的输出:

CREATE TABLE `clients` (
 `ref` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `ID` int(11) unsigned NOT NULL,
 `client_name` varchar(75) DEFAULT NULL,
 `data_1` int(11) unsigned NOT NULL DEFAULT '0',
 `last_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 UNIQUE KEY `ref` (`ref`)
) ENGINE=MyISAM AUTO_INCREMENT=1135 DEFAULT CHARSET=utf8

最佳答案

SELECT ref, ID, client_name, data_1 FROM clients WHERE ID = 257 ORDER BY ref DESC LIMIT 1

MAX() 将显示该列 的最大值。 Mysql 然后从第一行中挑选其余的数据。

相反,此查询将确保您获得具有最高 ref

行的数据

关于mysql - MAX() 未在 MySQL 中显示预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434404/

相关文章:

mysql - 有哪些前端软件可以在 Mac OS 中使用 MySql(Base 和 Filemaker 除外)?

php - 如何在 PHP 中将文本文件加载到数据库?

php - 如果 mysql 查询不返回任何内容,则难以回显错误消息 PEAR PHP

php - MySQL 数据库中字符串替换的正则表达式

php - 查询未执行。没有错误

mysql - 在特定列上应用降序获取 MySQL 结果

mysql - 带有 MySQL-8 数据库的 Liferay-7 不工作

java - 尝试从现有项目生成变更日志文件时出现错误 "Table name pattern can not be NULL or Empty"

sql - mysql 中 REGEXP_SUBSTR 的等价物是什么?

php - 如何将 Eloquent 'saveMany' 与数据透视表一起使用?