MySQL在PHP中更新查询并返回多个ID
我想执行一个mysql更新查询,然后获取在更改中生效的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_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';