gpt4 book ai didi

php - MariaDb 不支持 ANY_VALUE() 函数

转载 作者:行者123 更新时间:2023-11-29 05:03:03 26 4
gpt4 key购买 nike

我有一个连接到 mysql 数据库的 laravel 项目,当我更改服务器时,我的代码失败了,因为我的新服务器有一个 Mariadb,当我检查我的日志时,我意识到,MariaDb 中有一些不受支持的函数,即 ANY_VALUE()

如何根据 MariaDb 编辑我的 sql?

select(DB::raw('SUM(price) as price, SUM(price_now) as price_now, 
ANY_VALUE(price_available) as price_available'),'adult_count')

error log

最佳答案

今天,您已经解决了这个问题。但是明天,当你运行相同的查询时,你会得到一个不同的错误。

在旧版本的 MySQL 或 MariaDB 中,如果不是 GROUPing BY,您将获得 price_available 的“任何值”。这实际上介于“不良做法”和“违反标准”之间。相对最近,MariaDB,然后是后来的 MySQL,切换到“仅完整分组依据”。那时,MySQL 出现了 ANY_VALUE(),但显然 MariaDB 失手了。

对新旧版本都应该安全的旧解决方法是使用 MIN(price_available) 或其他一些聚合函数。 (如果该列可能有 NULL,则各种聚合可能会或可能不会按照您喜欢的方式处理 NULL。)

另请参阅 ONLY_FULL_GROUP_BY 设置。

关于php - MariaDb 不支持 ANY_VALUE() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54167995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com