ai didi

php - PHP 中的 MySQL 更新查询并返回多个 id

转载 作者:行者123 更新时间:2023-11-29 00:10:45 24 4
gpt4 key购买 nike

我想执行一个 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 没有其他数据库支持的 OUTPUTRETURNING 子句。您可以通过在 update 之前运行 select 来获取 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');

请注意,当值未更改时,MySQL 不会进行更新。因此,第一个条件 -- 您可能认为重要也可能不重要。

然后,为了确保完整性(在发生更改数据的干预事务的情况下),您可以:

update table t join
temp_table tt
on t.id = tt.id
set deleted = '1';

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

关于php - PHP 中的 MySQL 更新查询并返回多个 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25201782/

24 4 0
文章推荐: android - 如何在android中正确设置 Material 按钮的样式
文章推荐: ios - 在 iOS 中与 InAppBrowser 插件一起使用时如何更改状态栏颜色?
文章推荐: ios - 从核心数据中删除记录不起作用?
文章推荐: MySQL 是否有外键?
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com