这是我的表结构:
Table Call_Log
id | StationId | LoginId | keystroke | timestamp
我需要能够找到关键字' 1
'在关键' 5
'之后被按下了在按键之间' Q
'。
EX: 'Q','5','1','Q' will return true
but 'Q','5','2','Q' will return false
另外,我需要这样做,以便我可以向find列添加更多键,并且它也可以找到它们。因此,如果我想在' 3
'之后找到关键5
。和' 1
',它可以做类似的事情。
Ex: 'Q','5','1','3','Q' will return true
but 'Q','5','1','2','Q' will return false
答案 0 :(得分:1)
SELECT count(*) FROM (
SELECT
IF(
@matchstring='Q' AND keystroke='5',
@matchsting:='Q5',
IF(
@matchstring='Q5' AND keystroke='1',
@matchstring:='Q51',
IF (@matchstring='Q51' AND keystroke='Q',
@matchstring:='Q51Q',
@matchstring:=keystroke
)
)
) AS matchpart
FROM
(SELECT @matchstring:=''),
Call_Log
WHERE
-- Your criteria here, might be "StationID=blah"
ORDER BY
Call_Log.`timestamp`
) AS baseview
WHERE matchpart='Q51Q'
;