我对带有 2 个 Where 子句的 UPDATE 语句有一些问题。
我想更新 StatoBloccato、Aperto、OrarioApertura、OrarioChiusura 只有一天叫做 Lun 和IDRoom = 1
但此更新会更改所有日期的值。
UPDATE room
INNER JOIN giorni ON (room.IDRoom = giorni.FKRoom)
SET StatoBloccato = false,
Aperto = true,
OrarioApertura = '09:00:00',
OrarioChiusura = '18:00:00'
WHERE room.IDRoom = 1 AND Nome LIKE 'Lun%';
有 2 个表:Room,Giorni。
这里是 SQLFiddle
最佳答案
这似乎在我尝试时有效 here .
具体查询是:
UPDATE room r JOIN
giorni g
ON r.IDRoom = g.FKRoom
SET r.StatoBloccato = false,
g.Aperto = true,
g.OrarioApertura = '09:00:00',
g.OrarioChiusura = '18:00:00'
WHERE r.IDRoom = 1 AND g.Nome LIKE 'Lun%';
虽然这应该等同于您的查询,但它使用限定所有 列名称,因此很清楚它们来自哪个表。
关于mysql - 使用 2 Where 子句更新列不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153539/