这就是我希望单独使用 MySQL 做的事情:(没有 PHP)
PHP代码:
$result=mysql_query("select f2 from t1 where f1=constant limit L");
while( $data = mysql_fetch_row($result) )
mysql_query("update t2 set f4=f4-1 where f3={$data[0]} limit 1");
如果你不懂 PHP:
select f2 from t1 where f1=constant limit L;
for each f2 (from above result) as F:
update t2 set f4=f4-1 where f3=F limit 1;
如何在 MySQL 中实现这一点?
细节:
第一次选择的输出中可能有重复的值,并且对于每个重复的值,都会运行更新语句。因此,如果值“123”在第一个选择的输出中出现三次,则 f4 将更新为 f4-3,其中 f3=123。
'L'是表't1'中满足“f1=constant”条件的次数;这个数字以前是已知的,因此用作限制。
使用限制 1 是因为字段“f3”中的值是唯一的。