1

我需要根据另一个表中的值更新一列。

这个选择语句产生我需要的结果

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...

那么如何格式化我的选择语句,以便它输出带有 [] 和空格的数据?

4

2 回答 2

2

您可以在 UPDATE 查询中使用 INNER JOIN,例如

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
于 2013-03-27T12:04:57.303 回答
1

利用CONCAT

SELECT CONCAT('[', ct.entry_id, '] [', ct.url_title, '] ', ct.title)
于 2013-03-27T12:01:47.397 回答