Nifle Asked: 2012-02-02 08:20:30 +0800 CST2012-02-02 08:20:30 +0800 CST 2012-02-02 08:20:30 +0800 CST 将 blob 从一行复制到另一行 772 我连续有一个损坏的斑点。 我想用同一张表中的另一个 blob 替换它。 我怎样才能只用 sql 语句来做到这一点?(如果可能的话,不要访问文件系统。) mysql query 1 个回答 Voted Best Answer Derek Downey 2012-02-02T08:41:41+08:002012-02-02T08:41:41+08:00 穷人的变化: 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 现在我在不使用会话变量的情况下完成了它: UPDATE foo, (SELECT content AS selectContent FROM foo WHERE id=2)selectFoo SET content=selectContent WHERE id=1;
穷人的变化:
现在我在不使用会话变量的情况下完成了它: