使用typo3扩展flux9.0.1更新colpos

ibps3vxo  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(315)

由于将flux更新为9.0.1,我需要更新元素的colpos。
这很好:

UPDATE `tt_content` 
SET colPos = ((tx_flux_parent * 100) + 11) 
WHERE tx_flux_column = "content";

但我还需要更新本地化的内容元素。它在tx\u flux\u parent中具有本地化的父uid。但是我需要标准语言的父uid。
我需要通过l18n\u parent获得tt\u内容中的值“tx\u flux\u parent”。所以我尝试用l18n\u parent构建一个查询,如下所示:

UPDATE `tt_content` as t1 
SET colPos = (( (SELECT t2.tx_flux_parent 
                 FROM tt_content t2 
                 WHERE t1.l18n_parent = t2.uid) * 100) + 11) 
WHERE t1.tx_flux_column = "content";

得到这个:
mysql meldet:dokumentation 1093-表“t1”被指定两次,既作为“update”的目标,也作为单独的数据源

ztmd8pv5

ztmd8pv51#

mysql不允许引用另一个子查询中再次更新的表,除非它在 FROM 子句(派生表)。
但是,在这种特殊情况下,您可以使用“self join”:

UPDATE `tt_content` as t1 
JOIN `tt_content` as t2 
  ON t1.l18n_parent = t2.uid 
SET t1.colPos = ((t2.tx_flux_parent * 100) + 11) 
WHERE t1.tx_flux_column = 'content'

相关问题