- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个连接到 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')
最佳答案
今天,您已经解决了这个问题。但是明天,当你运行相同的查询时,你会得到一个不同的错误。
在旧版本的 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/
我想从mysql中选择最新的数据,所以我运行下面的sql,但是我得到next_visit_time与max create_time行的实际值不匹配>。所以我检查了数据,发现最新的数据是 null ,所
我正在尝试创建一个动态的 where 子句。我在 PHP 中得到一些复选框数组,如下代码 $brand = array(); if(isset($_GET['brand']) && !empty($_
考虑以下查询: with abc as ( select 1 as a, 1 as b, 2 as c union all select 1, 3, 4 union all selec
我想在 MySQL 5.7 中使用 GROUP BY 时为每个组获取一个随机行。根据我的研究,最干净的方法是这样做: SELECT ANY_VALUE(column_1), ANY_VALUE(col
我有一个连接到 mysql 数据库的 laravel 项目,当我更改服务器时,我的代码失败了,因为我的新服务器有一个 Mariadb,当我检查我的日志时,我意识到,MariaDb 中有一些不受支持的函
面临的问题 incompatible with sql_mode=only_full_group_by; 要解决此问题,请立即使用 ANY_VALUE() ,它解决了问题。 但是,在一些mysql查询
默认启用 SQL 模式 ONLY_FULL_GROUP_BY。因此,我没有禁用 ONLY_FULL_GROUP_BY,而是尝试使用 ANY_VALUE(arg) 查询获取了我预期的结果。 我希望它与
自从mysql 5.7.5 group by发生了变化 https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html 如果我做这个查询
我想在 MySQL 中创建一个具有可选值的查询。当指定值时,查询将按该值过滤,当值不是时返回所有行。想法是这样的: public function doQuery($item = 'ANY_VALUE
我有一个看起来像这样的“供应商”表... **company itemKey itemPriceA itemPriceB** companyA, 203913, 20, 10 companyA, 20
我有重现错误的表格和数据: DROP DATABASE IF EXISTS `theway`; CREATE DATABASE IF NOT EXISTS `theway` DEFAULT C
目前我在开发中使用 mysql 5.7,在生产中使用 5.6。每次我在开发中使用 group by 运行查询时,我都会收到一些错误,例如“错误代码:1055。SELECT 列表的表达式 #1 不在 G
在这样的 SQL 查询中: SELECT * FROM MyTable WHERE x = 5; 是否可以修改 WHERE 条件以便 SELECT 查找 x 的每个值?类似(错误的语法): SELEC
我是一名优秀的程序员,十分优秀!