我需要根据另一个表中的值更新列。
这个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/