0

如何从导出到文本文件的 mysql 表中的一行中获取所有数据,但以这种方式格式化:

  • 一个字段下另一个字段,每行一个
  • 我想将这些数据分成几部分,并在 file1.txt 中保存例如 50 行,然后在 file2.txt 中保存下 50 行,依此类推直到结束(它不是整数,所以最后一个文件的行数可能会更少)
  • 不要复制相同的条目/删除重复项

...使用 php 脚本还是只使用 mysql 控制台?

4

2 回答 2

2

我可能会这样做,使用命令行客户端:

$ mysql --user=XXX --password=XXX --batch --skip-column-names \
  -e "SELECT userid, displayname FROM Users" stackoverflowdb | \
split -l 50 -a 5 - "result."
于 2009-08-07T21:35:52.060 回答
0

我讨厌做人们的家庭作业/工作,但这太容易了。

    <?

    $row = mysql_fetch_array($rc);

    $nodupes = array();
    foreach ($row as $field)
    {
        $nodupes[$field] = $field;
    }

    $i = 1;
    $filenum = 0;
    $line = 50 ; // create new file ever 50 lines
            $text = "";
    foreach($nodupes as $field)
    {
        $i++;
        $text .= "$field\n";

        // to split into bite size peices
        if ($i % $line == 0)
        {
            $filenum++;
            $filename = "myfile_$filenum.txt";
            file_put_contents($filename,$text);
            $text = "";
        }
    }
    $filenum++;
    $filename = "myfile_$filenum.txt";
    file_put_contents($filename,$text);
    ?>

所以今天吃,改天学会钓鱼!

于 2009-08-07T21:30:21.930 回答