更新表,where seen = 0或select data


Updating table where seen = 0 or select data

我有一个提醒菜单显示新的东西给用户。这是一个类似ebay的PHP系统。

写入sell table:

id
seller
customer
product_name
date

我想要的是为每个用户显示一个带有新销售提醒的菜单。我可以:

方法1:

在sell表中添加SEEN列,插入时设置为0,当USER点击alert菜单时扫描表设置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 = ?

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

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

祝你好运

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

方法2:

记录上次(日期)用户点击警报菜单,然后选择新的警报日期> last_date_click:

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

这个问题属于太宽泛的范畴,但既然你渴望知道,我看到它的方式,这样的SELECT必须更快,因为它只涉及搜索和抓取除了UPDATE一个需要搜索,以及更新!

p。有很多人的知识远不止这些。我希望Barmar, Gordon Linoff或其他人对此进行更深入的分析。欢呼。

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