我有以下MySQL数据,我每天输入(货币汇率(。
有些日子我需要复制昨天的汇率,在这种情况下,我手动在我的应用程序中手动创建新记录,具有相同的值和今天的日期。
当今天的所有值都与昨天相同时,当然日期除外,有没有办法在 MySQL 级别运行此每日"克隆"过程的查询?
例如
昨天的费率
子日期(现在((,1(
╔════╦════════════╦═══════════╦═══════════╦══════════╗
║ id ║ date ║ net_price ║ sell_rate ║ currency ║
╠════╬════════════╬═══════════╬═══════════╬══════════╣
║ 1 ║ 2017-08-10 ║ 0.9088 ║ 1.0401 ║ GBP ║
║ 2 ║ 2017-08-10 ║ 1.1801 ║ 0.8010 ║ USD ║
║ 3 ║ 2017-08-10 ║ 1.1361 ║ 0.8494 ║ CHF ║
║ 4 ║ 2017-08-10 ║ 1.4964 ║ 0.6282 ║ CAD ║
║ 5 ║ 2017-08-10 ║ 1.4968 ║ 0.6280 ║ AUD ║
╚════╩════════════╩═══════════╩═══════════╩══════════╝
今日房价
[net_price, sell_rate, currency] 将被复制到 CURDATE(( 的新记录中
日期没有被MySQL自动获取其值,应用程序在新记录上输入其值
╔════╦════════════╦═══════════╦═══════════╦══════════╗
║ id ║ date ║ net_price ║ sell_rate ║ currency ║
╠════╬════════════╬═══════════╬═══════════╬══════════╣
║ 6 ║ 2017-08-11 ║ 0.9088 ║ 1.0401 ║ GBP ║
║ 7 ║ 2017-08-11 ║ 1.1801 ║ 0.8010 ║ USD ║
║ 8 ║ 2017-08-11 ║ 1.1361 ║ 0.8494 ║ CHF ║
║ 9 ║ 2017-08-11 ║ 1.4964 ║ 0.6282 ║ CAD ║
║ 10 ║ 2017-08-11 ║ 1.4968 ║ 0.6280 ║ AUD ║
╚════╩════════════╩═══════════╩═══════════╩══════════╝
(例如,我们不关心外汇汇率的官方每日变化(
您可以在同一个表中插入昨天的记录:
INSERT INTO rates (date, net_price, sell_rate, currency)
SELECT CURDATE(), net_price, sell_rate, currency
FROM rates
WHERE date = SUBDATE(CURDATE(), 1)
这个答案有点人为,因为它假设你以某种方式已经知道外汇数据没有每天变化,或者变化很小,以至于克隆昨天的数据是令人满意的。