在mysql中更改一个单元格的数据

Posted

技术标签:

【中文标题】在mysql中更改一个单元格的数据【英文标题】:Change One Cell's Data in mysql 【发布时间】:2011-03-02 18:13:12 【问题描述】:

如何只更改 mysql 表的一个单元格中的数据。 我对 UPDATE 有疑问,因为它使列中的所有参数都发生了变化,但我只想更改一个。怎么样?

【问题讨论】:

到目前为止你尝试过什么?你能分享你正在使用的查询吗?通常,您不会更新“列中的所有参数” 【参考方案1】:

您可能需要指定要更新的行...

UPDATE 
    mytable
SET 
    column1 = value1,
    column2 = value2
WHERE 
    key_value = some_value;

【讨论】:

我被这个答案弄糊涂了,以为 SET 选择了要更改的行,然后 WHERE 更改了它们。 WHERE 中的条件可以是 column1 = old_value 吗? @weefwefwqg3,是的,可以,但没有意义。如果您不更改值,只需将其排除在 SET 部分之外。 @Brian Hooper:我确实需要更改值,我的意思是问我是否可以这样做:UPDATE mytable SET column1 = new_value WHERE column1 = old_value; ?? @weefwefwqg3,啊,我明白了,对不起,是近视发作。是的,那很好。【参考方案2】:

我的回答是重复其他人之前说过的话,但我想我会添加一个示例,使用MySQL,只是因为之前的答案对我来说有点神秘。

更新单行列需要使用的命令的一般形式:

UPDATE my_table SET my_column='new value' WHERE something='some value';

这是一个例子。

之前

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10104 | 
+------------+-------+
2 rows in set (0.00 sec)

做出改变

mysql> update ae set port='10105' where aet='CDRECORD';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

之后

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10105 | 
+------------+-------+
2 rows in set (0.00 sec)

【讨论】:

感谢您的演示。上述查询将更新 aet 列中的所有 CDRECORD 实例。但是,当更新特定列中的特定单元格时,最好根据列的 ID 执行此操作,即 ID=xx 通常最好使用行主键,行唯一标识符(通常是 ID,但并非总是如此)。老实说,这取决于你想做什么来定义“最佳”实践【参考方案3】:

UPDATE 只会更改您特别列出的列。

UPDATE some_table
SET field1='Value 1'
WHERE primary_key = 7;

WHERE 子句限制更新哪些行。通常,您会使用它来识别表的主键(或 ID)值,以便您只更新一行。

SET 子句告诉 MySQL 要更新哪些列。您可以根据需要列出尽可能多或尽可能少的列。您未列出的任何内容都不会更新。

【讨论】:

【参考方案4】:

UPDATE 仅更改您指定的值:

UPDATE table SET cell='new_value' WHERE whatever='somevalue'

【讨论】:

【参考方案5】:

尝试以下方法:

UPDATE TableName SET ValueName=@parameterName WHERE
IdName=@ParameterIdName

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习 - @parameterName 是做什么的?【参考方案6】:

更新表 <tablename> SET <COLUMN=VALUE> WHERE <CONDITION>

例子:

UPDATE TABLE teacher SET teacher_name='NSP' WHERE teacher_id='1'

【讨论】:

【参考方案7】:

试试这个。

UPDATE `database_name`.`table_name` SET `column_name`='value' WHERE `id`='1';

【讨论】:

欢迎来到 Stack Overflow!虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它将是 greatly improved if it included an explanation 的 如何 它解决了这个问题。没有这个,你的回答就没有多少教育价值了——记住你是在为未来的读者回答这个问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。【参考方案8】:

MySQL 中的某些列有“on update”子句,请参阅:

mysql> SHOW COLUMNS FROM your_table_name;

我不确定如何更新此内容,但我会在发现时发布编辑。

【讨论】:

如果有“on update”,它将在执行上述命令时获得的表的“Extra”列中。

以上是关于在mysql中更改一个单元格的数据的主要内容,如果未能解决你的问题,请参考以下文章

更改重复使用的单元格的类型? [关闭]

如何动态更改自定义单元格的表格视图单元格的高度?

在被点击的单元格的索引处更改数据源

如何在表格视图中更改一个单元格的高度? [复制]

如何在 Swift 中动态更改包含 UICollectionView 单元格的 UITableView 单元格的高度?

如何更改 ag-grid 单元格的颜色以动态更改数据