我在循环中得到了这个查询:
while ($row = mysql_fetch_array($query)) {
INSERT INTO restaurant_views (date, restaurant_id, views) VALUES ('{$current_date}', '{$row['id']}', 1) ON DUPLICATE KEY UPDATE views=views+1
}
此代码应该更新表格 restaurant_views 中的视图列。
问题是它没有检查date和restaurant_id是否重复,它只是检查数据库中的主列是否重复。
以下是该表的屏幕截图:
正如您所看到的,日期和 restaurant_id 都是唯一的,但此代码给我的是:
查询已循环7次,您可以在视图中看到。这是错误的。
我想要的是7个不同的行,每个行中有1个视图。
。
我希望你明白问题是什么!
提前致谢,
Tompa
答案 0 :(得分:2)
如果您想要餐馆ID /日期的唯一性,那么您需要在这些列上使用唯一索引/约束:
create unique index idx_restaurant_views_2 on restaurant_views(restaurant_id, date)
然后你的代码应该可以工作。