尝试运行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()
,但为什么?
答案 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