Mysql选择一组记录并更新它们

时间:2012-09-20 18:04:43

标签: php mysql

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

我可以在一个唯一的查询中执行此操作,还是需要单独执行此操作?

感谢。

3 个答案:

答案 0 :(得分:0)

必须完全选择。如果您知道WHERE选择的内容,可以使用相同的WHERE进行更新。

假设您将使用以下选择记录:

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

然后你会像这样更新记录

update foobar set bar='new' where foo like '%fo'

答案 1 :(得分: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");

答案 2 :(得分:0)

为什么要尝试仅使用一个查询?如果它是一致的,请尝试使用带事务的DB,或者至少在发出两个查询之前锁定表。但最终,两个查询很好 - 它应该是单个查询的同一时间复杂度。不要害怕双重查询! :d