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() 中的某些模型字段