如何在sql查询中直接使用数组来更新多行

use*_*713 5 php mysql doctrine

我知道可以使用以下查询更新多行

UPDATE MyProject\Model\User u SET u.password = 'new' WHERE u.id IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

我的疑问是,如果我有一个数组 $array = [1,2,3] ,我可以直接在查询中使用这个数组,而不需要迭代,这可能吗?

Sat*_*rma 2

尝试这个

$sql = "UPDATE `MyProject` INNER JOIN `Model` INNER JOIN `Model` SET password='new' WHERE id IN(1,2,3)";
Run Code Online (Sandbox Code Playgroud)

如果你有数组,ids你可以使用它IN

$array_of_id = array(1,3,5,8);
$in_text = implode(",", $array_of_id);
$sql = "UPDATE `MyProject` INNER JOIN `Model` INNER JOIN `Model` SET password='new' WHERE id IN($in_text)";
Run Code Online (Sandbox Code Playgroud)