所以我想从我的数据库表导出到一个.csv文件来使用,但我的问题是如何正确地获取以下所有参数。
首先,我需要将所有列标题导出为csv文件中的第一列,
然后从那里我需要导出所有我需要使用的数据(where…)和
最后,我需要订购某一列(orderby…)。
目前,我只能得到三个参数中的两个正确。所以我现在的说法是:
SELECT *
FROM ( " ... all my rows names"
UNION ALL
( SELECT *
from table_name
where Set_Type = "..." or ID = "..." ORDER by probability
)
) as tbl INTO OUTFILE ' ' FIELDS TERMINATED by ',';
因此,当前,该命令将列放入第一行,并将类型或id部分设置为正确。但是,它不会对概率部分进行排序。在出口之前有什么办法我可以做任何事情吗?最好是在一个命令中,但如果是多个命令,我所做的每一次都需要一个特定的id,因此命令将不同。
1条答案
按热度按时间0lvr5msh1#
下面的链接有一个很好的解释:
如何保存带有标题的mysql查询
但为了不必访问网站,他们举了一个例子:
要包含列名(以便.csv文件在第一行包含标题),可以在另一个select语句中对它们进行硬编码,该语句由union all运算符前置到查询的其余部分。
基本上,分别选择标题并使用union all。只需将orderby添加到查询的实际获取数据的部分。
示例
所以这个例子对我很有用。之所以将标题放在底部,是因为要将ORDERBY子句应用于整个联合体。您需要将union的第二部分 Package 在方括号中,以便仅将order by应用于方括号内的所有内容。
这对我很有用:
mysql站点的更多信息:
但是,对单个select语句使用ORDERBY并不表示行在最终结果中的显示顺序,因为union在默认情况下会生成一组无序的行。因此,在这种情况下,order by的使用通常与limit结合使用,因此它用于确定要为select检索的选定行的子集,即使它不一定影响这些行在最终联合结果中的顺序。如果order by在select中没有限制地出现,它将被优化掉,因为它无论如何都没有效果。
基本上,你也必须在申请订单时申请限额,否则它不会生效。