在同一行MySQL中的两个行字段之间交换数据

时间:2019-04-25 22:36:14

标签: mysql sql

我有这张桌子:

CREATE TABLE `Factura` (
`IDFactura` BIGINT NOT NULL AUTO_INCREMENT,
`TipoDevolucionActual` VARCHAR(10) NOT NULL, 
`TipoDevolucionAnterior` VARCHAR(10) NOT NULL,
 PRIMARY KEY (`IDFactura`)
);

当尝试更新一行以将TipoDevolucionActual值与TipoDevolucionAnterior值互换时,我在两个字段中都得到了相同的值。

我试图这样做:

update Factura SET 
TipoDevolucionAnterior=TipoDevolucionActual,
TipoDevolucionActual=TipoDevolucionAnterior WHERE IDFactura=1;

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这将起作用

UPDATE Factura 
    SET TipoDevolucionActual = (@temp := TipoDevolucionActual),
        TipoDevolucionActual = TipoDevolucionAnterior,
       TipoDevolucionAnterior = @temp
    WHERE IDFactura = 1;