gpt4 book ai didi

mysqldump 获取特定 ID 和日期范围

转载 作者:行者123 更新时间:2023-11-29 17:49:32 26 4
gpt4 key购买 nike

mysqldump -uroot -p --no-create-info --no-create-db hawa_new scada_data wind_turbine  "SELECT  s.* FROM scada_data as s,wind_turbine as w WHERE s.local_tm BETWEEN '2018-02-01' AND '2018-02-28' AND s.turbine = w.id AND w.pooling_station = 29" |gzip > /var/lib/mysql-files/sd_feb.sql.gz

我收到错误

Couldn't find table: "SELECT  s.* FROM scada_data as s,wind_turbine as w WHERE s.local_tm BETWEEN '2018-02-01' AND '2018-02-28' AND s.turbine = w.id AND w.pooling_station = 29"

最佳答案

这里可以采用两种方法,具体取决于您是否想要转储 INSERT 语句,或者是否愿意将数据转储为 CSV 格式以便通过 LOAD DATA INFILE 在其他地方使用。这两个版本都假设您想要使用 gzip 并有权访问命令行。

mysqldump方法

您可以使用 mysqldump --where 子句来过滤与第二个表中的值匹配的记录,但您需要对现在的内容进行一些更改

更改 --where 子句以删除 SELECT 和 FROM 部分并匹配子选择中的 Wind_turbine 记录

添加一个开关以确保从数据库获得一致的转储(--lock-all-tables 或 --single-transaction)。

从表列表中删除表 wind_turbine,因为它与 --where 子句不匹配,并且您只想将数据转储到 scada_data 中。

这样的事情应该有效:

mysqldump -uroot -p --single-transaction --no-create-info --no-create-db  --where "local_tm BETWEEN '2018-02-01' AND '2018-02-28' AND turbine IN (SELECT id FROM wind_turbine WHERE pooling_station = 29" hawa_new scada_data | gzip > /var/lib/mysql-files/sd_feb.sql.gz

SELECT INTO OUTFILE 方法

(这与您的原始查询相同,可能也是我自己执行此操作的方式)

mysql -e "SELECT s.* INTO OUTFILE '/var/lib/mysql-files/sd_feb.sql' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
FROM scada_data as s,wind_turbine as w WHERE s.local_tm BETWEEN '2018-02-01' AND '2018-02-28' AND s.turbine = w.id AND w.pooling_station = 29"; gzip /var/lib/mysql-files/sd_feb.sql

关于mysqldump 获取特定 ID 和日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49506051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com