使用java更新具有单列的mysql数据

Posted

技术标签:

【中文标题】使用java更新具有单列的mysql数据【英文标题】:Updating mysql data with single column using java 【发布时间】:2014-10-17 07:53:39 【问题描述】:

我在 mysql 中有一个表,只有一列(没有主键),说列是这样的->

Column Name
----------------
Data1
Data2
Data4

我想要做的是使用 java 连接将“Data4”更改为“Data3”。 但是要更改单元格值,我知道命令->

Alter Table <tablename> set <columnname>="something" where <someothercolumnname>="somethingelse";

但这需要表中至少 2 列,当只有一列时我会收到语法错误。那么任何人都可以帮助我正确的命令吗?

【问题讨论】:

How to rename a table column in MySQL 的可能重复项 AlterUpdate 不同,如果要更新表数据,则使用alter 更新表模式,然后使用更新查询update tablename set columnname ='value' where columnname='somevalue' @alfasin 我不这么认为;如果我正确阅读了这个问题,“列名”是列,“Data1”、“Data2”、“Data4”是该列下表中的数据(请注意,OP 说只有一列,而不是三列) 那样的话就更简单了…… 【参考方案1】:

使用更新查询而不是更改查询。 alter 将帮助您更新表描述。

update <your table name> set columnname ='Data3' where columnname='Data4';

【讨论】:

好的,谢谢,它成功了(不知道我是怎么错过这个命令的,需要更多地学习mysql!:D)。【参考方案2】:

您可以将表格保持原样,只需将查询编写为:

select data1, data2, data4 as data3
from tablex;

或者,如果你想在数据库中重命名它:

ALTER TABLE <tablename> CHANGE data4 data3 varchar(255);

执行此操作时,您需要有一个数据类型。将数据类型更改为适合列的类型。

【讨论】:

正如我对 alfasin 所说,我很确定 OP 实际上只是试图更新一个单元格,而不是重命名一个列。【参考方案3】:

更改查询是实际答案。 但是有一个愚蠢的替代方案, 先删除“Data4”,再插入“Data3”

【讨论】:

以上是关于使用java更新具有单列的mysql数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL 更新单列中的某些值组

sql mysql批量插入,具有重复键更新(upsert),并具有条件数据更新

SQL - 从单列到两列的所有日期组合

如何使用 JAVA 在 Spark SQL 中基于单列删除重复行

怎么提高数据库查询效率

将行数据转换为带键列的单列