首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新没有唯一键的行

更新没有唯一键的行
EN

Stack Overflow用户
提问于 2012-09-16 08:52:51
回答 1查看 887关注 0票数 3

我使用mySQL (engine: myISAM)和php作为接口。

我的目标是:在表的每一行中填充一个数字字段,方法是循环遍历该表,并递增一个变量,该变量的值被分配给该字段。

一段简单的代码如下所示:

代码语言:javascript
复制
$NumOfRows = mysqli_num_rows(mysqli_query ($connection, "SELECT * FROM voc"))

$Offset = 1;

While (($Offset-1) < $NumOfRows)
{

  mysqli_query($connexion, "UPDATE voc SET id=$Offset WHERE **??rownumber??**=$Offset LIMIT 1");

  $Offset = $Offset + 1;
}

我将mySQL SELECT命令的偏移参数的对应项设置为双重问号。当然,这样的论点是不存在的。

我的问题是:如何遍历表并操作单个行?

约束:表中没有允许使用WHERE参数(例如:WHERE id=[any value])的唯一键。

注释:作为一个经验丰富的4维用户,我非常困惑:在第4维度中,您可以使用适当的命令循环遍历从第一行开始到最后一行的表,并通过简单的命令记录对任何行的更改。作为mySQL的新手,我只能怀疑一定有一些有效的解决办法。

EN

回答 1

Stack Overflow用户

发布于 2012-09-16 09:05:19

通过使用自定义变量,您可以实现您似乎正在尝试的目标。

代码语言:javascript
复制
SET @seq := 0;
UPDATE voc SET id = @seq := @seq + 1;

(请注意,与您的方法不同,您不需要预先选择任何内容,也不需要在单独的查询中更新每一行,但是所有行都是在一个UPDATE中处理的;您需要将SET作为一个独立于UPDATE的查询执行)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12445566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档