[英]Different entries within 5 seconds
抱歉,我不知道如何描述這個話題。
我有一個數據庫,我在其中存儲條目的unixtime和其他一些東西,在這種情況下,用戶的“名稱”列和“類型”列可以為1或2。
我想檢查是否有名稱相同的條目,並在5秒內將類型從1切換到2,然后再切換回1或2 1 2。
因此,它向我顯示了以下內容:
Unixtime Name type
1550293559 Peter 2
1550293560 Peter 1
1550293561 Peter 2
有沒有可以幫助我做到這一點的查詢?
抱歉,我真的希望你們能理解這一點,但我不知道如何正確解釋問題。
謝謝。
您可以使用該表上的3x自聯接和必要條件(所有3行具有相同的名稱,等等)來實現。 有關更多信息,請參見http://www.mysqltutorial.org/mysql-self-join/ 。
請注意,由於聯接會產生所有可能的排列作為輸入資料,因此您不必在查詢的where部分中對條件進行“排列”。 例如,要獲得5秒規則,您可以說
... where e1.unixtime > e2.unixtime and e2.unixtime > e3.unixtime and e3.unixtime+6 > e1.unixtime ...
編輯:由於原始答案被低估,這是假設表名稱為“ sotest”的完整查詢(抱怨)。
SELECT
*
FROM
sotest e1
JOIN
sotest e2
JOIN
sotest e3
WHERE
(e1.name = e2.name AND e2.name = e3.name
AND e1.unixtime > e2.unixtime
AND e2.unixtime > e3.unixtime
AND e3.unixtime + 6 > e1.unixtime)
AND ((e1.type = 1 AND e2.type = 2
AND e3.type = 1)
OR (e1.type = 2 AND e2.type = 1
AND e3.type = 2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.