【发布时间】:2017-10-31 11:05:11
【问题描述】:
我的 Web 应用程序在获取下一条记录的同时有大约 300 个用户我想向他们显示记录,以便每个用户都有不同的记录(即它们之间不重复)
而且提取的记录也希望将它们标记为已提取,因此在下一个提取批次中不应考虑。
我不知道下面的查询是否适合我。
SELECT TOP 1 * FROM [Table_name] ORDER BY NEWID();
【问题讨论】:
-
select top 1 * from MyTable where Fetched=0 order by newid()防止出现已获取的记录。然后你必须将获取的记录标记为 fetchedupdate myTable set Fetched=1 -
谢谢回复,我会试试的
-
显然对于更新,您需要指定您正在使用的记录的 id。目前这条语句会更新表中的所有记录为
fetched=1
标签: sql sql-server-2012