我有一張名爲emp(eid, ename, sal, mgr)
的表格。現在我想更新工資低於50000/- 的經理工資。如何選擇mysql中同一表中的更新?
UPDATE emp AS t1 INNER JOIN
(SELECT mgr FROM emp WHERE mgr = t1.empno) AS t2
SET sal = sal + 5000
WHERE t1.sal <50000;
我該怎麼辦?
我有一張名爲emp(eid, ename, sal, mgr)
的表格。現在我想更新工資低於50000/- 的經理工資。如何選擇mysql中同一表中的更新?
UPDATE emp AS t1 INNER JOIN
(SELECT mgr FROM emp WHERE mgr = t1.empno) AS t2
SET sal = sal + 5000
WHERE t1.sal <50000;
我該怎麼辦?
你可以使用子查詢,更新依賴於同一個表,即數據:
UPDATE sometable set field = null
WHERE sometable.id in (SELECT * FROM (SELECT id from sometable) as a);
我想更新的經營者年薪其薪水小於50000/
爲什麼你需要一個SELECT
BTW。只是執行像UPDATE
操作
update emp
set sal = 70000
where sal < 50000;
在MySQL中,我還是用JOIN
這種類型的更新更喜歡使用雙重嵌套IN
表達式。該JOIN
允許優化利用現有的索引:
UPDATE emp mgr INNER JOIN
emp e
ON e.empno = mgr.mgr
SET mgr.sal = mgr.sal + 5000
WHERE mgr.sal < 50000;
粘貼查詢 –
'更新EMP集SAL = {你什麼都想要}其中SAL <50000' –
'更新EMP集SAL = newamount其中SAL < 50000' –