我想根據 ID 復制一行的值,然后根據其 ID 將其粘貼到其他列。
例如,我想將 ID 為 1、2 的塊更新為 ID 為 4 的塊的值。所以基本上我想復制 ID 4(或任何其他 ID)的內容并將其粘貼到 ID 為1,2(或任何其他 ID)。
例如,我有一個名為的表market,我想將 ID 為 4 的水果和成熟度列復制到 ID 為 1 和 2 的同一個表和列中。
ID | fruits | ripeness|
----------------------
1 | tomato | very |
2 | apple | little |
3 | orange | very |
4 | kiwi | ripe |
到:
ID | fruits | ripeness|
----------------------
1 | kiwi | ripe |
2 | kiwi | ripe |
3 | orange | very |
4 | kiwi | ripe |
uj5u.com熱心網友回復:
一個表可以使用兩個不同的別名與自身連接
UPDATE market f
CROSS JOIN market t
SET t.fruits = f.fruits, t.ripeness = f.ripeness
WHERE f.ID = 4
AND t.ID IN ( 1, 2 )
f對于 ID 為 4t的行,以及ID 為 1、2 的行。
uj5u.com熱心網友回復:
據說壞習慣是,在 ANSI-92 SQL 標準(將近 30 年前)中,舊式的逗號分隔表樣式已被正確的 ANSI JOIN 語法替換,并且不鼓勵使用它。如果您真的想合并來自兩個視圖的每一行,請使用正確的 CROSS JOIN!您只需按照以下操作即可。
declare v_fruits varchar(50)
declare v_ripness varchar(50)
-- SQLINES LICENSE FOR EVALUATION USE ONLY
select fruits, ripness into v_fruits, v_ripness from market
where Id=4
update market set fruits=v_fruits,ripness=v_ripness
where Id in (1,2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/330810.html
標籤:mysql
