我想知道是否有任何方法可以在查询中选择一组记录后立即更新它们。我的意思是,我需要获取一组记录,并根据获取的记录集,将“read”字段更新为1。
我能在一个唯一的查询中做吗?还是我需要单独做?
谢谢。
发布于 2012-09-21 02:11:42
示例:根据需要修改where子句中的表名、条件。
update abc
set read = 1
where a in (select p from pqr where p=q) 根据您对问题的最新评论,您需要两个问题:
$rs = mysql_query("select p from pqr where p=q"); 将第二个查询放入循环中,遍历第一个查询的结果集
foreach( $rs as $v)
mysql_query("update abc set read = 1 where a = $v");发布于 2012-09-21 02:06:43
You do not have to them at all.如果您知道您的WHERE将用于选择,则可以使用相同的位置进行更新。
假设您使用以下命令选择记录:
select foo, bar from foobar where foo like '%fo'然后,您可以像这样更新记录
update foobar set bar='new' where foo like '%fo'发布于 2012-09-21 09:34:57
为什么要尝试只使用一个查询?如果是一致的,请尝试对事务使用DB,或者至少在发出这两个查询之前锁定表。但归根结底,两个查询是可以的-它的时间复杂度应该与单个查询相同。不要害怕双重查询!:D
https://stackoverflow.com/questions/12518286
复制相似问题