【发布时间】:2021-03-11 22:36:00
【问题描述】:
我在这里找到了很多关于 only_full_group_by 的信息,当您收到 #1055 错误时,它处于严格模式。我发现的解决方案都涉及禁用用户警告可能导致其他问题的严格模式。我的问题是关于使查询符合而不是变通。谁能告诉我在严格模式下是否可以投诉以下查询,如果可以,会有什么变化?
错误 - #1055 - 选择列表的表达式 #2 不在 group by 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列 xxx;这与 sql_mode=only_full_group_by 不兼容
SELECT
post_id,
name,
Email,
CustomerId,
DeliveryDate,
DeliveryTime,
DeliveryType,
Zip,
OrderNote,
PaymentTotal,
OrderStatus
FROM
(SELECT
post_id,
name,
MAX((CASE WHEN (meta_key = '_rpress_payment_user_email') THEN meta_value END)) AS `Email`,
MAX((CASE WHEN (meta_key = '_rpress_payment_customer_id') THEN meta_value END)) AS `CustomerId`,
MAX((CASE WHEN (meta_key = '_rpress_delivery_date') THEN meta_value END)) AS `DeliveryDate`,
MAX((CASE WHEN (meta_key = '_rpress_delivery_time') THEN meta_value END)) AS `DeliveryTime`,
MAX((CASE WHEN (meta_key = '_rpress_delivery_type') THEN meta_value END)) AS `DeliveryType`,
MAX((CASE WHEN (meta_key = '_rpress_delivery_zip') THEN meta_value END)) AS `Zip`,
MAX((CASE WHEN (meta_key = '_rpress_order_note') THEN meta_value END)) AS `OrderNote`,
MAX((CASE WHEN (meta_key = '_rpress_payment_total') THEN meta_value END)) AS `PaymentTotal`,
MAX((CASE WHEN (meta_key = '_order_status') THEN meta_value END)) AS `OrderStatus`
FROM
(`wp_postmeta` `t1`
JOIN `wp_rpress_customers` `t2` ON ((0 <> FIND_IN_SET(`t1`.`post_id`, `t2`.`payment_ids`))))
GROUP BY `t1`.`post_id` , `t2`.`name`) `derived_table`
【问题讨论】:
-
这看起来像是一个有效的聚合查询。在
ONLY_FULL_GROUP_BY下运行时,您会遇到哪个错误? -
stackoverflow.com/questions/36207042/… 回答你的问题了吗??
-
考虑处理应用代码中数据显示的问题
-
@strawberry,我不确定这是什么意思
-
@gmb 我得到一个:1055 - 选择列表的表达式 #2 不在 group by 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列 xxx;这与 sql_mode=only_full_group_by 无法兼容
标签: mysql sql group-by pivot aggregate-functions