1

別のテーブルの値に基づいて列を更新する必要があります。

この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ステートメントをフォーマットするにはどうすればよいですか?

4

2 に答える 2

2

UPDATEクエリ内でINNERJOINを使用して、次のようなものを与えることができます。

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 に答える