如何逐行读取和更新表sql和php?

vu8f3i0k  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(299)

我有一个数据库,我想逐行读取一个表,然后为每一行更新一个单元格。我已经写了下面的代码,但是有没有更好的方法呢?我的意思是它比我的代码花费的时间要少。这是我的密码:

$List = 'some text...';
$SQL = "SELECT * FROM TABLE";
$res = mysqli_query($database, $SQL);

    while($row = mysqli_fetch_assoc($res)){
        if(strpos($List,$row['name']) !== false){
            mysqli_query($database, "UPDATE TABLE SET `yes`=1 WHERE name='".$row['name']."'");
        }else{
            mysqli_query($database, "UPDATE TA SET `yes`=0 WHERE name='".$row['name']."'");
        }
    }
cqoc49vn

cqoc49vn1#

这种方法并不是最好的,sql的思想是以一种更有效的方式来管理并能够做到这一点。您可以只执行2个查询并更新信息,而不是迭代每一行并执行total rows+1查询。
例如:

-- Update all to 0
UPDATE TABLE SET `yes`=0 ;

-- Update the one on the list to 1
UPDATE TABLE SET `yes`=1 WHERE name in ('value1','value2','value3');

这种方法可以节省大量的执行时间,并且在非常大的数据集上更有效地处理事件。

a0x5cqrl

a0x5cqrl2#

我这里有两个解决方案
解决方案1:
复制表并执行更新和重命名原始表,同时将copy1表重命名为original 1
表1复制到表2对表2执行操作
然后将表\u 1重命名为bkp \u表\u 1,然后将表\u 2重命名为表\u 1
解决方案2
用户选择insert the data in new table(在新表中插入要更新的数据)。

相关问题