有什么方法可以基本上跟踪从 SQL 表中提取一行的次数吗?
例如,在我的表中,我有一个列数。每次 SQL 语句提取特定行(我们称之为 rowA)时,rowA 的“count”值都会增加 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
一个不错的替代方案是在数据访问层的应用程序端处理它。
关于mysql - 选择一行时增加一个值 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804017/