MySql如果表B中不存在记录,则在表A中添加表B和增量列,否则仅添加到表B中

时间:2014-05-01 14:50:29

标签: mysql sql

我正在创建一些内容来记录每个项目的观看次数。仅当用户之前没有查看过时,每个项目的视图才会增加。

我正在使用2张桌子,

`itemsMain` is the main table
id  |  itemTitle  | itemViews
--------------------------------
 1  |  Item 1     | 1
 2  |  Item 2     | 1

itemStats是记录每个视图的表。即使同一用户两次查看同一项目,也会插入一条记录。 (Helps for analysis later)

genId | itemId | itemViewedUserId |
  1   |   1    |   1
  2   |   1    |   1

此处userId 1已查看itemId 1一次,因此itemsMain中的itemViews为1。

但是,如果他再次查看相同的itemId 1,则需要在itemStats中插入记录,但itemViews中的itemsMain列不需要递增。

这样的事情怎么办?我目前使用php来选择是否存在记录,然后进行增量。

这样的东西在单个sql语句中是否可行?

这一切都是这样的: 如果在itemStats =>中找到匹配记录将记录添加到itemStats,但不要在itemViews

中增加itemsMain

如果在itemStats =>中找不到匹配的记录将记录添加到itemStats,但在itemViews

中增加itemsMain

记录需要插入itemsStats,无论是否存在,但只有在itemsStats中的记录不存在时才需要进行增量。

示例:

insert into itemStats (1,2) //Adds the record to `itemStats` as well as increments `itemViews` in `itemsMain`

insert into itemStats (1,2) //Adds the record to `itemStats` but no increment to `itemViews` in `itemsMain`

0 个答案:

没有答案