0

我想知道在查询中选择它们之后是否有任何方法可以更新一组记录。我的意思是我需要获取一组记录,并根据获取的集合,将“读取”字段更新为 1。

我可以在唯一的查询中进行还是需要单独进行?

谢谢。

4

3 回答 3

0

您根本不必选择它们。如果您知道WHERE要选择什么,则可以使用相同的 WHERE 进行更新。

假设您将选择您的记录:

select foo, bar from foobar where foo like '%fo'

然后你会像这样更新记录

update foobar set bar='new' where foo like '%fo'
于 2012-09-20T18:06:42.850 回答
0

示例:根据需要更改 where 子句中的表名、条件。

update abc 
set read = 1
where a in (select p from pqr where p=q) 

根据您对问题的最新评论,您需要 2 个查询:

  $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-20T18:11:42.257 回答
0

为什么你试图只使用一个查询?如果是一致性,请尝试使用带有事务的数据库,或者至少在发出两个查询之前锁定表。但最终,两个查询是可以的——它应该与单个查询具有相同的时间复杂度。不要害怕双重查询!:D

于 2012-09-21T01:34:56.620 回答