想象一下,我有一张桌子:
table1
field1
field2
我想在字段1中存储一个值,并将其当前值移动到同一查询中的字段2中。
我可以这样做吗?
UPDATE table1 SET field2 = field1, field1 = ?
答案 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 |