5秒内输入不同内容

时间:2019-02-16 05:12:37

标签: mysql

对不起,我不知道如何描述这个话题。

我有一个数据库,我在其中存储条目的unixtime和其他内容,在这种情况下,用户的“名称”列和“类型”列可以为1或2。

我想检查是否有名称相同的条目,并在5秒内将类型从1切换到2,然后再切换回1或2 1 2。

它向我展示了这样的东西:

Unixtime   Name type
1550293559 Peter 2
1550293560 Peter 1
1550293561 Peter 2

有没有可以帮助我做到这一点的查询?

对不起,我真的希望你们能理解,我不知道如何正确解释问题。

谢谢。

1 个答案:

答案 0 :(得分:-1)

您可以使用该表上的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))