有没有办法基本上跟踪从SQL表中提取行的次数?
例如,在我的表格中,我有一个列数。每次SQL语句拉出一个特定的行(让我们称之为rowA)时,rowA的'count'值会增加1.
无论是在表格的设置中还是在声明中,都可以,但是我找不到这样的东西。
我知道我可以把它分成两个语句来实现同样的目的,但我更愿意只发送一个。
答案 0 :(得分:2)
执行此操作的最佳方法是将表的读取访问权限限制为存储过程。
此存储过程将采用各种输入(过滤器选项)来确定返回哪些行。
在返回行之前,它们的计数器字段会递增。
请注意,update和select命令共享相同的where子句。
create procedure Select_From_Table1
@pMyParameter varchar(20), -- sample filter parameter
as
-- First, update the counter, only on the fields that match our filter
update MyTable set Counter = Counter + 1
where
MyFilterField like CONCAT('%', @pMyParameter, '%') -- sample filter enforcement
-- Now, return those rows
select
*
from
MyTable
where
MyFilterField like CONCAT('%', @pMyParameter, '%') -- sample filter enforcement
一个不错的选择是在数据访问层的应用程序端处理它。