1

我有一个值列表(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))

谢谢。

4

3 回答 3

1

更新

如果 的数据类型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
于 2013-01-16T14:49:23.940 回答
0

你也可以试试这个:

UPDATE Clients.Devices 
SET assignedUserID='Jhon' 
WHERE accountID='Delivery1' AND deviceID > = 1234 AND deviceID <= 1236
;
于 2013-01-16T14:52:14.607 回答
0

如果使用 php,也许这会起作用:

$ids = join(',',$deviceIDs);

$sql = "UPDATE Clients.Devices 
SET assignedUserID='Jhon' 
WHERE accountID='Delivery1' AND deviceID IN ($ids)";
于 2013-01-16T14:58:21.403 回答