SQL 将修改后的值从一个字段插入到新字段

SQL insert modified value from one field to a new one

我的问题是我不知道 SQL 查询但需要做一些我认为不难的事情。我已经尝试了一些推荐的问题,但我真的不明白如何将其推断到我的案例中,希望你能帮助我。

基本上我需要的是在 table 中创建一些行,并用 同一 table 中其他行的值,我会尽量做到非常具体。


我有一个 table ( vb_postmeta ) 有很多行,其中一些看起来像这样:

meta_id post_id meta_key meta_value
1434 500 bpxl_videourl lOO6hyOKoUM
1435 501 bpxl_videourl skjd9F008mN

我在这里需要的是,为每一行创建一个如下所示的新行:

meta_id post_id meta_key meta_value
AUTO 500 csco_post_video_url https://www.youtube.com/watch?v=lOO6hyOKoUM
AUTO 501 csco_post_video_url https://www.youtube.com/watch?v=skjd9F008mN

meta_id是关键,所以应该自动生成,而post_id应该是一样的并且 meta_value 也应该与 Youtube URL 前置相同的值。

我真的不知道这有多难,但希望不要太多,
在此先感谢您的帮助,为此苦苦挣扎。

假设您的 meta_id 是 AI(自动递增)并使用 mySQL(MSSQL 的小改动),尝试:

INSERT INTO vb_postmeta (
SELECT null, 
post_id, 
'csco_post_video_url' 
CONCAT('https://www.youtube.com/watch?v=',meta_value
FROM vb_postmeta)

根据您的问题,我假设您需要将新行插入到相同的 table - vb_postmeta .

为此,

插入 vb_postmeta (post_id,meta_key,meta_value) SELECT post_id,meta_key,''meta_value 'https://www.youtube.com/watch?v='+姓名 来自 vb_postmeta

根据建议的答案,我最终使用了这个:

INSERT INTO vb_postmeta(
    SELECT
        NULL,
        post_id,
        'csco_post_video_url',
        CONCAT('https://www.youtube.com/watch?v=', meta_value)
    FROM
        vb_postmeta
    WHERE
        meta_key = 'bpxl_videourl'
)