MySQL:如何从MySQL表中提取多个文本文件

MySQL:如何从MySQL表中提取多个文本文件,mysql,Mysql,我需要将MySQL数据库中的数据提取到多个文本文件中 我有一个包含4列的表:UserID、UserName、Tag、Score 我需要为每个标签创建一个文本文件,其中包含用户ID、用户名和分数,并按分数排序 比如说 Tag1.txt 234922 John 35 234294 David 205 392423 Patrick 21 Tag2.txt 234922 John 35 234294 David 205 392423 Patrick 21 等等 编辑:示例:我不确定是否有一个查询会自

我需要将MySQL数据库中的数据提取到多个文本文件中

我有一个包含4列的表:UserID、UserName、Tag、Score

我需要为每个标签创建一个文本文件,其中包含用户ID、用户名和分数,并按分数排序

比如说

Tag1.txt
234922 John 35
234294 David 205
392423 Patrick 21

Tag2.txt
234922 John 35
234294 David 205
392423 Patrick 21
等等


编辑:示例:

我不确定是否有一个查询会自动为您写入每个文件,除非您使用存储过程或某种类型的游标,我对这些大部分都不熟悉

但是,您可能会发现以下两个查询很有用:

这将从每个标签中选择最佳得分手并列出他们:

SELECT userid, name, score, tag FROM users
GROUP BY tag
ORDER BY score DESC;
这将从本例中给定的标签z-wave中选择所有分数,按分数顺序:

DECLARE @TagName AS STRING;
SET @TagName = "z-wave";
SELECT userid, NAME, score, tag FROM users
WHERE tag = @TagName
ORDER BY score DESC;

请注意,在您的示例中,所需的结果似乎不符合顺序。

您可以为普通的mysql_fetch_对象函数编写代码,PHP中的write file函数可以用来解决您的问题。见下文

$Query = "select * from Table1";
$row = $mysql_query($Query);
while($rs = mysql_fetch_object($row))
{
    $filecontent = $rs->userid . ' '. $rs->username . ' '. $rs->score;
    $myFile = $rs->tag.".txt";
    $fh = fopen($myFile, 'w') or die("can't open file");
    $stringData = $filecontent."\n";
    fwrite($fh, $stringData);
    fclose($fh);
}

您是在数据库管理程序(如SQLYG或PHPMyAdmin)中执行此操作,还是正在编写一个程序来执行查询并写入文件?是的,我正在使用PHPMyAdmin和Sequel Pro for mac。他们根据查询写文件。。。我不知道你需要什么样的信息。。问我好了,这很有帮助,因为文件编写部分由您负责,您只需要知道SQL查询语法应该是什么。然后我接下来的两个问题是:1标签的数量和记录的数量一样多吗?你能提供一个小样本表吗?对问题1不确定。是的,每行都有一个标签。每个用户对每个标签都有一个分数。同一用户在1个标记上不能有2个分数。没有空字段。问题2。我已经更新了我的帖子。这非常有帮助,因为标签字段是一种类别。如果我不能给你一个答案,希望有人能根据这个新的信息。嗨,谢谢你的这些片段。实际上,我正在研究如何将第二个查询与php Prabhu的php代码一起使用。我是否应该构建一个包含所有标记的表,然后运行php脚本来检索标记名并对每个标记运行查询?我想这就是我应该采用的路径。只需查询表中的标签列表,然后从用户处选择distincttag,然后使用该列表创建一个循环,运行第二个查询,将每次迭代的结果输出到以标签命名的文件中。