2012-03-13 2 views
0

У меня есть таблица (post_order) структурированную следующим образом:SQL-запрос, чтобы скопировать значения полей в одной таблице

| post_id | term_id | post_type | taxonomy | 
    | 1 | 6 | post | category | 
    | 2 | 6 | post | category | 
    | 3 | 6 | post | category | 

Я хотел бы, чтобы скопировать все поля в той же таблице, но изменить term_id (скажем, например, 7), таким образом, таблица будет в конечном итоге выглядит так:

| post_id | term_id | post_type | taxonomy | 
    | 1 | 6 | post | category | 
    | 2 | 6 | post | category | 
    | 3 | 6 | post | category | 
    | 1 | 7 | post | category | 
    | 2 | 7 | post | category | 
    | 3 | 7 | post | category | 

Я знаю, что я мог бы сделать что-то вроде:

INSERT INTO post_order (post_id, term_id, post_type, taxonomy) 
SELECT post_id, term_id, post_type, taxonomy 
FROM post_order 
WHERE term_id = 6 

Но это создаст точный дубликат и не изменит term_id.

Как я могу это достичь?

ответ

3

жестко закодировать term_id до 7 в вашем INSERT заявлении:

INSERT INTO post_order (post_id, term_id, post_type, taxonomy) 
SELECT post_id, 7, post_type, taxonomy 
FROM post_order 
WHERE term_id = 6 
Смежные вопросы