我正在尝试运行replace into DB调用,但我只希望它在提供的printerid大于数据库存储的printerid时执行。
下面是我的示例代码,希望能理解这一点

unitid = 2382;
printerid = 9826;

REPLACE INTO devices (unitid, printerid)
VALUES ('"+ unitid +"', '"+ printerid +"')
WHILE '"+printerid+"' > devices.printerid

因此,例如,如果设备数据库已经有一个unitid 2382的条目,其打印机ID为9999,那么SQL调用不应该执行任何操作,但是如果它的打印机ID为8888,它将用我的新打印机ID 9826替换它。
上面列出的SQL代码显然不起作用。:(
谢谢!

最佳答案

如果您在INSERT INTO ... ON DUPLICATE KEY上有一个主/唯一键,也可以使用unitid

INSERT INTO devices (unitid, printerid)
VALUES ('"+ unitid +"', '"+ printerid +"')
ON DUPLICATE KEY UPDATE devices
SET unitid = '"+ unitid +"', printerid = '"+ printerid +"'
WHERE unitid = '"+ unitid +"' AND printerid < '"+ printerid +"'

关于mysql - SQL:REPLACE INTO语句可以与一个案例结合吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9758225/

10-12 13:25