我有一个值列表(deviceID),我需要进行一个MySQL查询来更新一个列值,我可以按照以下方式进行查询

UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND
      (deviceID='1234' OR deviceID='1235' OR deviceID='1236')

这是一个简单的例子,但是有些accountID有500多个设备id,所以我要找一个更短的SQL语句
那么,有没有办法将设备id列表传递给SQL服务器?
有点像
UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND
      (deviceID=('1234','1235','1236))

谢谢。

最佳答案

更新
如果deviceID的数据类型是数字型,则不需要单引号。
可能IN对于多个值不=

UPDATE Clients.Devices
SET assignedUserID = 'Jhon'
WHERE accountID = 'Delivery1' AND deviceID IN (1234,1235,1236)

或者如果ID按顺序使用BETWEEN
UPDATE Clients.Devices
SET assignedUserID = 'Jhon'
WHERE accountID = 'Delivery1' AND deviceID BETWEEN 1234 AND 1236

关于mysql - 如何进行大量选定的更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14361034/

10-12 21:38