MySQL在PHP中更新查询并返回多个ID

MySQL在PHP中更新查询并返回多个ID,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,我想执行一个mysql更新查询,然后获取在更改中生效的ID数组 这是我的更新查询 mysql_query("UPDATE table SET deleted='1' WHERE id='$id' OR foo='$foo' OR bar='$bar'"); 我知道我可以这样做,从INSERT查询中获取创建的id mysql_query("INSERT INTO table (id,foo,bar) VALUES ('$id','$foo','$bar')"); $newid = mysql_

我想执行一个mysql更新查询,然后获取在更改中生效的ID数组

这是我的更新查询

mysql_query("UPDATE table SET deleted='1' WHERE id='$id' OR foo='$foo' OR bar='$bar'");
我知道我可以这样做,从INSERT查询中获取创建的id

mysql_query("INSERT INTO table (id,foo,bar) VALUES ('$id','$foo','$bar')");

$newid = mysql_insert_id();

我认为MySQL没有其他数据库支持的
输出
返回
子句。在
更新
之前运行
选择
,可以获得
id
的列表:

create table temp_table ids_to_update as 
    SELECT id
    FROM table
    WHERE (deleted <> '1' or deleted is null) and *id='$id' OR foo='$foo' OR bar='$bar');

您也可以将这两个查询包装在一个事务中,但我认为使用临时表来存储
id
s可能更容易。

Sidenote-请使用PDO或MySQLi,因为MySQL函数不受欢迎。您的查询对SQL注入开放。@Daan我以前做过所有转义
update table t join
       temp_table tt
       on t.id = tt.id
    set deleted = '1';