将blob行转储到MySQL中的文件

时间:2009-06-26 21:44:26

标签: mysql flat-file

我有一个包含几千行的表,它有一些整数列和一个blob列。我想将每一行转储为自己的文件,其中blob是内容,而整数用于形成文件名。这是一次性操作如此快速和肮脏是可以的。一个限制是我在这个环境中几乎没有安装任何工具,因此无论我使用什么,它都将成为开发成本的一部分。


编辑:我最后在另一个框中使用了C#。它只需要下载a single assembly和大约相同数量的代码,如下面的答案所示。

2 个答案:

答案 0 :(得分:1)

PHP快速的东西:

<?php
$connection = mysql_connect("mysqlserver.example.com", "username", "password");
mysql_select_db("dbname");
$sql = "SELECT `blob_column`, `id` FROM `mytable`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)){
    file_put_contents("file" + $row["id"] + ".dat", $row["blob_column"]);
}
mysql_close($connection);

你可以用你用来访问MySQL的方法做类似的事情,但AFAIK,用纯SQL无法做到这一点。

答案 1 :(得分:1)

在Common Lisp中,使用CLSQL,以下内容应该可以工作(未经测试,目前没有安装MySQL):

(require 'clsql)
(require 'clsql-mysql)

(clsql:connect (host db user password port) :database-type :mysql)

(clsql:do-query ((col1 col2 blob) "select col1,col2,blob from blobtable")
  (with-open-file (outfile (format nil "~a-~a" col1 col2)
                           :direction :output
                           :element-type 'byte)
    (write-sequence blob outfile)))

你必须填写主机,数据库等(端口是可选的),然后调整查询。