MySQL ANY_VALUE() 函数

ANY_VALUE()函数对于启用了ONLY_FULL_GROUP_BY模式,使用GROUP BY进行查询时很有用;该函数用于抑制启用ONLY_FULL_GROUP_BY模式时导致的值拒绝;

官方例子:

SELECT name, address, MAX(age) FROM t GROUP BY name;
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP
BY clause and contains nonaggregated column 'mydb.t.address' which
is not functionally dependent on columns in GROUP BY clause; this
is incompatible with sql_mode=only_full_group_by

发生错误的原因是address是非聚合列;

使用ANY_VALUE()解决:

SELECT name, ANY_VALUE(address), MAX(age) FROM t GROUP BY name;

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/mysql-any-value-function.html

分类: 计算机技术
推荐阅读:
Golang中如何使用go test进行单元测试 单元测试的意义在这里就不多说了;本文将示范如何在Go语言环境下使用go test进行简单的单元测试。
让Linux终端像电影里一样下起数字雨 在Linux系统里,如果你想要实现电影里的数字雨,一条命令即可:
Golang中关键字fallthrough在switch语句里的用法 和C语言不同,在Go语言里的 switch 语句中,是不需要使用 break 来退出一个case的。也就是说,case执行完成后,是不会继续向下匹配的。
Golang多个返回值有什么作用 在 Go 语言中,函数可以返回多个值,这是一项非常实用的特性,其作用如下:
Rust语言获取当前的时间戳 在 Rust 中,要获取当前的时间戳(Unix 时间戳),您可以使用 std::time::SystemTime 和 std::time::UNIX_EPOCH 的组合,然后将时间间隔转换为秒数。
Rust解析TOML,结构体序列化和反序列化 在Rust中,可以使用标准库中的toml模块来解析和生成TOML格式的数据;serde与toml模块集成,可以将TOML字符串解析为任意Rust结构体,或将rust结构体序列化为TOML格式的字符串。