我想知道在查询中选择它们之后是否有任何更新记录的方法。我的意思是我需要获取一组记录,并根据提取的设置,将“读取”字段更新为1.
我可以在一个唯一的查询中执行此操作,还是需要单独执行此操作?
感谢。
答案 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