我想知道在查询中选择它们之后是否有任何方法可以更新一组记录。我的意思是我需要获取一组记录,并根据获取的集合,将“读取”字段更新为 1。
我可以在唯一的查询中进行还是需要单独进行?
谢谢。
您根本不必选择它们。如果您知道WHERE
要选择什么,则可以使用相同的 WHERE 进行更新。
假设您将选择您的记录:
select foo, bar from foobar where foo like '%fo'
然后你会像这样更新记录
update foobar set bar='new' where foo like '%fo'
示例:根据需要更改 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");
为什么你试图只使用一个查询?如果是一致性,请尝试使用带有事务的数据库,或者至少在发出两个查询之前锁定表。但最终,两个查询是可以的——它应该与单个查询具有相同的时间复杂度。不要害怕双重查询!:D