如何在将字段的值移动到另一个字段时更新字段?

时间:2016-02-18 13:09:04

标签: mysql sql

想象一下,我有一张桌子:

table1
    field1
    field2

我想在字段1中存储一个值,并将其当前值移动到同一查询中的字段2中。

我可以这样做吗?

UPDATE table1 SET field2 = field1, field1 = ?

2 个答案:

答案 0 :(得分:2)

我想你已经回答了你的问题。您可以通过此查询实现所需的目标:

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date d = formatter.parse(text);
long time = d.getTime();
Timestamp t = new Timestamp(time);

SourceofField是值的来源变量或来源。

答案 1 :(得分:0)

Update Table1 as T1 
LEFT JOIN Table1 as T2 ON T2.id = T1.id
SET T1.field2 = T2.field1, T1.field1 = 'X'; 

编辑解释: SQL Fiddle

MySQL 5.6架构设置

CREATE TABLE table1
    (id MEDIUMINT NOT NULL AUTO_INCREMENT,
    field1 CHAR(30),
    field2 CHAR(30),
    PRIMARY KEY (id));

INSERT INTO table1
    (`field1`, `field2`)
VALUES
    ('','A'),
    ('foo','B'),
    ('bar','C');

查询1

SELECT  * FROM table1

<强> Results

| id | field1 | field2 |
|----|--------|--------|
|  1 |        |      A |
|  2 |    foo |      B |
|  3 |    bar |      C |

现在我启动我的更新请求,结果如下:

    | id | field1 | field2 |
    |----|--------|--------|
    |  1 |      X |        |
    |  2 |      X |    foo |
    |  3 |      X |    bar |