更新看到的表= 0或选择数据

时间:2015-10-04 07:06:50

标签: php mysql

我有一个警报菜单,可以为用户显示新内容。它是一个像ebay这样的PHP系统。

所以我卖桌子了:

id
seller
customer
product_name
date

我想要的是为每个用户显示带有新销售警报的菜单。对于这项工作,我可以:

方法1:

在sell表格中添加SEEN列,在插入时将其设置为0,在USER点击警报菜单时,它会扫描表格以将SEEN设置为1。

update sell set seen = 1 where seen = 0 and seller = ?

方法2:

记录上次(日期)用户点击提醒菜单,然后选择新提醒where date > last_date_click

select * from sell where date > $last_date_click and seller = ?

所以,我的问题是,在这种情况下我应该使用哪一个以及为什么?

3 个答案:

答案 0 :(得分:1)

这种方法不会像你真正想要的那样工作。 在您的方法中,您应创建包含id,productID,userseenID的新表,而不是您在检查买方是否已进入产品时。 当然,当用户进入项目时,你必须更新它,你应该检查productID是否存在于productID中,如果不是创建一个。 顺便说一下,您可以添加time(),以确切知道何时以及哪个用户访问该项目。

祝你好运

答案 1 :(得分:0)

我理解你的问题以下方法很有用,因为最好选择查询而不是多个更新查询。

方法2:

记录上次(日期)用户点击提醒菜单,而不是选择新提醒的日期> last_date_click:

select * from sell where date > $last_date_click and seller = ?

答案 2 :(得分:0)

这个问题属于太广泛的范畴,但由于你很想知道,我看到它的方式,A SELECT本身必须更快,因为它只涉及搜索并从需要搜索和更新的UPDATE中取出!

PS。有很多知识比这更重要的人。我希望BarmarGordon Linoff或其他人对此进行深入分析。干杯。

select * from sell where date > $last_date_click and seller = ?