将 blob 从一行复制到另一行

Nif*_*fle 2 mysql query

我连续有一个损坏的斑点。
我想用同一张表中的另一个斑点替换它。

我怎样才能只使用sql语句来做到这一点?(如果可能的话,不访问文件系统。)

Der*_*ney 5

穷人的改变:

mysql> CREATE TABLE `foo` (
  `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  `content` blob,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

mysql> INSERT INTO foo VALUES (NULL, 'bar'), (NULL, 'another_bar');

mysql> SELECT * FROM foo;
+----+-------------+
| id | content     |
+----+-------------+
|  1 | bar         |
|  2 | another_bar |
+----+-------------+
2 rows in set

mysql> SELECT content INTO @newContent FROM foo WHERE id=2;

mysql> UPDATE foo SET content=@newContent WHERE id=1;

mysql> SELECT * FROM foo;
+----+-------------+
| id | content     |
+----+-------------+
|  1 | another_bar |
|  2 | another_bar |
+----+-------------+
2 rows in set
Run Code Online (Sandbox Code Playgroud)

现在我已经在不使用会话变量的情况下完成了:

 UPDATE foo, (SELECT content AS selectContent FROM foo WHERE id=2)selectFoo 
  SET content=selectContent 
  WHERE id=1;
Run Code Online (Sandbox Code Playgroud)