有什么方法可以从本质上跟踪从 SQL 表中提取一行的次数?
例如,在我的表中,我有一个列数。每次 SQL 语句拉取特定行(我们称之为 rowA)时,rowA 的“计数”值就会增加 1。
无论是在表格的设置中还是在语句中都可以,但我找不到这样的东西。
我知道我可以将它分成两个语句来实现相同的目的,但我宁愿只发送一个。
执行此操作的最佳方法是将表的读取访问限制为存储过程。
此存储过程将采用各种输入(过滤器选项)来确定返回哪些行。
在返回行之前,它们的计数器字段会递增。
请注意,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
一个不错的选择是在数据访问层的应用程序端处理它。