我需要根据另一个表中的值更新列。
这个select语句产生我需要的结果

select ct.entry_id, ct.url_title, ct.title
from exp_channel_titles ct, exp_channel_data cd
where ct.channel_id = 1
and cd.channel_id = 2
and ct.title = cd.field_id_2
and ct.status = 'open'

但我要插入的列接受以下格式的数据:
[entry_id] [url_title] title

所以我的插入语句看起来像
update exp_channel_data
set field_id_1 = ([1234] [page-title] Page Title)
where...

那么,如何格式化select语句,使其输出带有[]和空格的数据呢?

最佳答案

您可以在更新查询中使用内部连接,提供如下内容

UPDATE exp_channel_data cd
INNER JOIN exp_channel_titles ct
    ON ct.title = cd.field_id_2
    AND ct.channel_id = 1
    AND ct.status = 'open'

SET cd.field_id_1 = CONCAT('[',ct.entry_id,'] [',ct.url_title,'] ',ct.title)

WHERE cd.channel_id = 2

关于mysql - MySQL更新从另一个选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15658257/

10-12 21:44