MySQL的使用下面的語法支持multiple-table updates
CREATE TABLE tablea (id int, value char(1));
CREATE TABLE tableb (id int, value char(1));
INSERT INTO tablea VALUES (1, 'a');
INSERT INTO tablea VALUES (2, 'b');
INSERT INTO tablea VALUES (3, 'c');
INSERT INTO tablea VALUES (4, 'd');
INSERT INTO tablea VALUES (5, 'e');
INSERT INTO tableb VALUES (1, 'a');
INSERT INTO tableb VALUES (2, 'b');
INSERT INTO tableb VALUES (3, 'c');
INSERT INTO tableb VALUES (4, 'd');
INSERT INTO tableb VALUES (5, 'e');
結果:
SELECT * FROM tablea;
+------+-------+
| id | value |
+------+-------+
| 1 | a |
| 2 | b |
| 3 | z |
| 4 | d |
| 5 | e |
+------+-------+
5 rows in set (0.00 sec)
SELECT * FROM tableb;
+------+-------+
| id | value |
+------+-------+
| 1 | a |
| 2 | b |
| 3 | z |
| 4 | d |
| 5 | e |
+------+-------+
5 rows in set (0.00 sec)
UPDATE:
如果你不喜歡重複你要設定值的兩倍,您可能需要使用下面的技巧:
UPDATE tablea, tableb, (SELECT 'z' val) d
SET tablea.value = d.val, tableb.value = d.val
WHERE (tablea.id = tableb.id) AND (tablea.id = '3');
你正在使用哪些DBMS? – 2010-07-28 15:31:13
? DB是MySQL,語言是PHP – calumbrodie 2010-07-28 15:37:40
對不起,沒有注意到標題。添加了'mysql'標籤。 – 2010-07-28 15:40:18