在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中更改一个单元格的数据的主要内容,如果未能解决你的问题,请参考以下文章