我有一个值列表(deviceID),我需要创建一个MySQL查询来更新列值,我可以通过以下方式进行查询
UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND
(deviceID='1234' OR deviceID='1235' OR deviceID='1236')
这是一个简单的例子,但是一些accountID有超过500个devicesID所以我正在寻找一个更短的SQL语句 那么,有没有办法将deviceID列表传递给SQL服务器?
像
这样的东西UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND
(deviceID=('1234','1235','1236))
感谢。
答案 0 :(得分: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
答案 1 :(得分:0)
你也可以试试这个:
UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND deviceID > = 1234 AND deviceID <= 1236
;
答案 2 :(得分:0)
如果使用php:
,也许这会奏效$ids = join(',',$deviceIDs);
$sql = "UPDATE Clients.Devices
SET assignedUserID='Jhon'
WHERE accountID='Delivery1' AND deviceID IN ($ids)";