【发布时间】:2016-07-31 13:05:50
【问题描述】:
我正在尝试为每个在 MySQL 中具有值 1 的客户删除时间戳之后的行。示例表:
id | timestamp | cust_ID | value
899900 | 2016-04-11 12:00:00 | 500219 | 0
899901 | 2016-04-12 16:00:00 | 500219 | 0
899902 | 2016-04-14 11:00:00 | 500219 | 1
899903 | 2016-04-15 12:00:00 | 500219 | 1
899904 | 2016-04-23 09:00:00 | 500219 | 0
899905 | 2016-05-02 19:00:00 | 500219 | 0
909901 | 2016-04-12 16:00:00 | 500230 | 0
909902 | 2016-04-14 11:00:00 | 500230 | 1
909903 | 2016-04-15 12:00:00 | 500230 | 1
909904 | 2016-04-23 09:00:00 | 500230 | 0
909905 | 2016-05-02 19:00:00 | 500230 | 0
939905 | 2016-05-02 19:00:00 | 500240 | 0
努力实现:
id | timestamp | cust_ID | value
899900 | 2016-04-11 12:00:00 | 500219 | 0
899901 | 2016-04-12 16:00:00 | 500219 | 0
899902 | 2016-04-14 11:00:00 | 500219 | 1
899903 | 2016-04-15 12:00:00 | 500219 | 1
909901 | 2016-04-12 16:00:00 | 500230 | 0
909902 | 2016-04-14 11:00:00 | 500230 | 1
909903 | 2016-04-15 12:00:00 | 500230 | 1
939905 | 2016-05-02 19:00:00 | 500240 | 0
到目前为止,我有以下引发错误 1242 '子查询返回多行':
CREATE VIEW max_id AS SELECT id, cust_ID, MAX(timestamp) FROM table WHERE value = 1 GROUP BY cust_ID;
DELETE FROM max_id WHERE id > (SELECT id FROM max_id GROUP BY cust_ID);
任何帮助将不胜感激!
【问题讨论】:
标签: mysql