更新(concat)错误1111(HY000) - 无效使用组功能

时间:2015-06-08 07:51:32

标签: mysql join concat

尝试运行MySQL UPDATE `oc_product_description` pd inner join oc_product_attribute pa on pd.product_id = pa.product_id and pd.language_id = pa.language_id inner join oc_attribute_description ad on pa.attribute_id = ad.attribute_id and pa.language_id = ad.language_id inner join oc_product_to_category pc on pc.product_id = pa.product_id set pd.`description`= concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad.attribute_id=2 then ad.name end), ' ', ' ', max(case when ad.attribute_id=2 then pa.text end), ' ', ' и ', ' ', max(case when ad.attribute_id=3 then ad.name end), ' ', ' ', max(case when ad.attribute_id=3 then pa.text end), ' ' ) where pd.language_id = 4 and pa.attribute_id in (2,3) and pc.category_id = 121 and pa.product_id = 102 查询时出现以下错误:

  

更新(concat)错误1111(HY000) - 无效使用组功能

这是查询:

select

select concat( 'Вы можете приобрести "', pd.name, '" с гарантией от производителя', ' "', max(case when ad.attribute_id=2 then ad.name end), '" ', ' "', max(case when ad.attribute_id=2 then pa.text end), '" ', ' и ', ' "', max(case when ad.attribute_id=3 then ad.name end), '" ', ' "', max(case when ad.attribute_id=3 then pa.text end), '" ' ) as xz from oc_product_description pd inner join oc_product_to_category pc on pd.product_id = pc.product_id inner join oc_product_attribute pa on pd.product_id = pa.product_id and pd.language_id = pa.language_id inner join oc_attribute_description ad on pa.attribute_id = ad.attribute_id and pa.language_id = ad.language_id where pd.language_id = 4 and pa.attribute_id in (2,3) and pc.category_id = 146 group by pd.name 查询效果很好:

concat

我认为问题出在msg.setFileName(),但为什么?

1 个答案:

答案 0 :(得分:0)

我做到了!

UPDATE oc_product_description pd
inner join oc_product_to_category pc on pd.product_id=pc.product_id
inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id
SET pd.`description`=concat(
'Вы можете приобрести "', pd.name,(
select
concat( '" с гарантией от производителя',
' "', max(case when ad2.attribute_id=2 then ad2.name end), '" ',
' "', max(case when ad2.attribute_id=2 then pa2.text end), '" ',
' и ',
' "', max(case when ad2.attribute_id=3 then ad2.name end), '" ',
' "', max(case when ad2.attribute_id=3 then pa2.text end), '" ')

from oc_product_attribute pa2
inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id

where pa2.language_id=pd.language_id
and pa2.attribute_id in (2,3)
and pa2.product_id = pd.product_id
))
where
pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121
and pd.product_id = 102