Mysql比赛日期

时间:2014-03-24 07:47:54

标签: php mysql

我有一个名为promotions

的表格

已插入数据:

COLUMNS             VALUE
`startdate`         15-03-2014 00:00:00
`enddate`           30-05-2014 00:00:00
`promotion_for`     1 (product_id)

插入数据的新查询

COLUMNS             VALUE
`startdate`         15-03-2014 00:00:00
`enddate`           30-05-2014 00:00:00
`promotion_for`     1 (product_id)

如果在插入日期期间已在同一产品中运行促销,我不想插入新促销。

不知道如何为它生成MySQL查询。

1 个答案:

答案 0 :(得分:0)

首先向promotions添加唯一键:

ALTER TABLE `promotions` 
ADD UNIQUE INDEX(`startdate`,`enddate`,`promotion_for`); 

然后:

INSERT INTO `promotions` ( `startdate`,`enddate`,`promotion_for`)
VALUES ('15-03-2014 00:00:00', '30-05-2014 00:00:00', '1') 
ON DUPLICATE KEY
    UPDATE `startdate`='15-03-2014 00:00:00', `enddate`='30-05-2014 00:00:00', `promotion_for` = '1';