0
我需要在mySql的3个不同的表中更新4个具有相同名称的列。有没有一种安全的方法来做到这一点,而不是运行3种不同的陈述?如何更新单个SQL语句中3个不同表中的4列?
有点像update tablea, tableb, tablec set name='x', preferences = 0 etc where id = 5;
可能。
表格是不同的,但列名是相同的。
我需要在mySql的3个不同的表中更新4个具有相同名称的列。有没有一种安全的方法来做到这一点,而不是运行3种不同的陈述?如何更新单个SQL语句中3个不同表中的4列?
有点像update tablea, tableb, tablec set name='x', preferences = 0 etc where id = 5;
可能。
表格是不同的,但列名是相同的。
如果您有4个表都带有一个名为value1的字段,那么您可以使用单个查询更新所有4个表。我不知道技术上是否会更有效率,但这是可能的。下面,我成立了中提到的表,然后设置了多个不同的表值1的等于9,如果它们不等于9
假设我们建立这个模式:
CREATE TABLE table1
(
value1 int
);
CREATE TABLE table2
(
value1 int
);
CREATE TABLE table3
(
value1 int
);
CREATE TABLE table4
(
value1 int
);
INSERT INTO table1
VALUES(1);
INSERT INTO table2
VALUES(2);
INSERT INTO table3
VALUES(3);
INSERT INTO table4
VALUES(4);
您可以更新多个与表如下:
UPDATE table1, table2
SET table1.value1 = 9, table2.value1 = 9
WHERE table1.value1 != 9 OR table2.value1 != 9
SQLfiddle:http://sqlfiddle.com/#!2/3064f/5
除非你指的是通过一些服务器边L SQL的执行anguage:
mysqlQuery("SELECT * from table1; SELECT * from table2; SELECT * from table3");
我敢肯定:
mysqlQuery("SELECT * from table1");
mysqlQuery("SELECT * from table2");
mysqlQuery("SELECT * from table3");
这正好可以作为写。希望有所帮助!
编辑:添加SQLfiddle
既然你想这样做,也许你应该看看你的数据库设计。在多个地方存储相同的东西是一个坏主意。 –
为什么只是一个声明? 3个陈述有什么问题?你使用非事务性存储引擎吗? –