1

値のリスト(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))

ありがとう。

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 に答える