【问题标题】:how to export a specific category mysql如何导出特定类别的mysql
【发布时间】:2014-09-13 01:05:15
【问题描述】:

所以我有 8 个类别的产品,现在我想建立一个特定类别的网站,我在大数据库 7500 产品中拥有,我想只导出具有特定类别的产品

数据库是这样的

id , productid, category, description, price, rating 

现在我只想导出类别 1 的产品 所以我不得不

SELECT category=2 from dbtable where rating=1

然后我想导出 .. 这不起作用 .. 我不擅长 SQL .. 所以我需要 建议 - 谢谢!

【问题讨论】:

  • 你是如何导出的?如果您使用mysqldump,则可以使用--where 选项指定要从表中导出哪些行。
  • 请阅读MY POST关于询问 sql 问题的信息。您需要在此处提供更多详细信息才能获得好的答案。我真的不知道您要如何处理您的问题.
  • @Barmar 我使用 phpmyadmin 导出,如果你能一步一步告诉我如何.. 非常感谢你
  • 对不起,我不知道phpMyAdmin。
  • SELECT ... INTO OUTFILELOAD DATA INFILE

标签: mysql phpmyadmin export categories


【解决方案1】:

到目前为止,我找到的唯一解决方案是 PHPMyAdmin 上的手册

Go to database select table > Search > Category LIKE 2 go down to options 每页显示的行数 500 点击 Go 之后将导致第一页包含 500 个产品,全选并点击导出 - 我认为我必须这样做,直到我完成导出所有数据库

SELECT * FROM dbtable WHERE category LIKE '2' 

【讨论】:

  • 使用SELECT * INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM dbtable WHERE category LIKE '2' 导出该查询的结果。
  • @ssnobody 我使用了你的方法,我得到了这个 #1045 - Access denied for user 'dbtable'@'localhost' (using password: YES)
  • 两件事可能导致该错误,1) mysql 用户无权写入 /tmp(或您替换的任何路径)。如果它仍然是 /tmp,这不太可能。或者2)dbtable用户没有FILE权限。
【解决方案2】:

为什么不这样做

SELECT * FROM dbtable WHERE category = 2 AND rating = 1;

这将为您提供 category = 2 的所有行

我错过了什么还是你想要的??

【讨论】:

  • SELECT * FROM dbtable WHERE category LIKE '%2%' 会给我我想要的......之后我想导出那个选择
  • 好吧,你必须用像 php 这样的服务器端语言运行该查询并提取结果,然后做任何你想做的事情.. 有很多有用的网站只是在谷歌上搜索它
【解决方案3】:

如果您有更大的数据库并且您需要排除某些类别,我还找到了一些其他解决方案来获取该产品。 请注意,在备份您的数据库之前,我们将从数据库中删除 这里是

DELETE FROM dbtable WHERE category LIKE '1';
DELETE FROM dbtable WHERE category LIKE '2';
DELETE FROM dbtable WHERE category LIKE '3';
DELETE FROM dbtable WHERE category LIKE '4';
DELETE FROM dbtable WHERE category LIKE '5';
DELETE FROM dbtable WHERE category LIKE '6';
DELETE FROM dbtable WHERE category LIKE '7';

你只得到第 8 类的结果——我的情况 :)

【讨论】:

  • 我同意这是从数据库中删除数据的一种方法,但我不认为这是完成任务的最佳方法。请注意,在测试文字时不需要LIKE,因此您的查询可能是DELETE FROM dbtable WHERE category = '1';。此外,您可能希望节省一些时间并删除除您想要的以外的所有内容,以便您可以使用DELETE FROM dbtable WHERE category <> '2';。最后,我要提一下,您实际上已经修改了表并删除了不需要的数据,而不是导出任何内容。
  • 请注意 OP 询问的是如何导出数据而不是如何删除数据。如果 OP 执行了您发布的所有 7 条语句,则数据库中将只剩下一个类别(类别 8)。数据库所有者/管理员会不高兴发现所有其他 7 个类别都丢失了。
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
相关资源
最近更新 更多