MySQL 仅更新表中的某些字段

Posted

技术标签:

【中文标题】MySQL 仅更新表中的某些字段【英文标题】:MySQL Update only certain fields in a table 【发布时间】:2011-11-29 07:14:33 【问题描述】:

我在网站上有一些保险信息,我只想编辑用户想要更改的某些字段,例如: 用户、ID、电话、地址、城市

并且用户想要更改他的城市和电话...我是否必须针对每个特定情况进行查询,或者是否有代码可以帮助我检索键(电话)和值(9397171602)??

然后在查询中发送它

【问题讨论】:

【参考方案1】:

基本更新将采取以下形式:

UPDATE table_name SET column_1 = value_1, column_2 = value_2 WHERE column_3 = value_3

col1、col2 是您的城市和电话,col3 是用户 ID。查看 mysql 网站http://dev.mysql.com/doc/refman/5.0/en/update.html 了解更多信息

【讨论】:

是的,但是在那个表中我实际上有 9 列...如果我对可能出现的每种情况只进行一次查询...例如 UPDATE table_name SET column_1 = value_1, column_2 = value_2 WHERE column_3 = value_3 @neurotikYeah,但在那个表中我实际上有 9 列...如果我对可能出现的每种情况只进行一次查询...例如 UPDATE table_name SET column_1 = value_1, column_2 = value_2 column_3 = value_3.........直到 9WHERE column_3 = value_3 – 如果表格中有未填写的空白,是否会影响表格?如,删除先前的信息? @Skynight - 在客户端验证中使用 javascript/JQuery 并编写验证用户输入的 php 方法。 @Skynight - 抱歉,我不明白你的问题......“如果我对可能出现的每种情况只做一个查询”是什么意思? @Skynight - 是的,它会影响表格,是的,它会删除任何先前的信息,只要满足 WHERE 语句之后的条件。在发布此声明之前,应进行任何额外的有效性检查。【参考方案2】:

有多种方法可以安全地更新记录。考虑以下伪代码 + php 程序。

class Example

   function UpdateRecord($editedRecord)
    
        //Fetch existing record from the database
        $originalRecord=DB::fetchExample($editedRecord->getId()) 
        //validate each edited field and it is valid then assign its value
        //to the originalRecord's field

        if(IsValid($editedRecord->getName())
          
            $originalRecord->setName($editedRecord->getName());
          
        .....

        //update the record.
        $originalRecord->Update(); 
    

【讨论】:

【参考方案3】:

只需添加一些 sql 即可:

$sql = "UPDATE example SET col_1 = val_1, col_9 = val_9 WHERE col_7 = val_7";
mysql_query($sql);

然后用你的东西替换列和值。欲了解更多信息:PHP MySql Update

【讨论】:

以上是关于MySQL 仅更新表中的某些字段的主要内容,如果未能解决你的问题,请参考以下文章

更新两个不同表中的字段的最有效方法?

Prisma 如何仅更新 update() 中的某些模型字段

如何使用MySQL一个表中的字段更新另一个表中字段

选择项目仅在某些类别中的行

mysql如何更新一个表中的某个字段值等于另一个表的某个字段值

MYSQL怎么将表中的A字段值更新B字段值?求sql语句