我有表step_year:ID,step_id的數據類型,年份重複行,但需要在一列更改數據
我想複製這都行一年= 1011(SELECT * FROM step_year哪裏年份= 1011),而不是那些新創建的行同年(1011)我想將其更改爲1112.
任何幫助表示讚賞。
我有表step_year:ID,step_id的數據類型,年份重複行,但需要在一列更改數據
我想複製這都行一年= 1011(SELECT * FROM step_year哪裏年份= 1011),而不是那些新創建的行同年(1011)我想將其更改爲1112.
任何幫助表示讚賞。
你可以根據SELECT
的INSERT
但指定的,而不是從查詢
INSERT INTO `step_year` (`id`, `step_id`, `year`)
SELECT `id`, `step_id`, 1112 AS `year`
FROM `step_year` where `year` = 1011
這句法是MySQL拉的一年,但應該適應大多數數據庫。
如果你的數據庫支持:
INSERT INTO step_year
(id, step_id, year)
SELECT sub_year.id, sub_year.step_id, 1112
FROM step_year sub_year
WHERE sub_year.year = 1011
您需要爲此語法省略'VALUES',除非您想要,否則不需要別名'step_year'。 – doublesharp
insert into step_year(id, step_id,year)
select id,step_id,1112 from step_year where year = 1011
如果id字段是自動增量,用這個
INSERT INTO step_year(step_id,year)
SELECT step_id, 1112 FROM step_year WHERE year = 1011
如果id字段是不是自動增量
INSERT INTO step_year(id, step_id, year)
SELECT ROW_NUMBER() OVER(ORDER BY id) + COUNT(year) id, step_id, 1112 FROM step_year WHERE year = 1011
當你說「重複」,你是重新插入記錄,還是僅僅選擇雙倍的記錄? – LittleBobbyTables
將行復製爲新行。 – Brad