· 7 years ago · Oct 07, 2018, 10:34 PM
1DROP TABLE IF EXISTS my_table;
2
3CREATE TABLE my_table
4(id SERIAL PRIMARY KEY
5,user_id INT NOT NULL
6,dt DATETIME NOT NULL
7);
8
9INSERT INTO my_table (user_id,dt) VALUES (101,NOW());
10Query OK, 1 row affected (0.00 sec)
11
12SELECT * FROM my_table;
13+----+---------+---------------------+
14| id | user_id | dt |
15+----+---------+---------------------+
16| 1 | 101 | 2018-10-07 23:21:44 |
17+----+---------+---------------------+
181 row in set (0.00 sec)
19
20INSERT INTO my_table (user_id,dt)
21SELECT 101,NOW()
22 FROM (SELECT 1) x
23 LEFT
24 JOIN my_table y
25 ON y.user_id = 101
26 AND y.dt >= NOW() - INTERVAL 60 SECOND
27 WHERE y.id IS NULL;
28Query OK, 1 row affected (0.00 sec)
29Records: 1 Duplicates: 0 Warnings: 0
30
31SELECT * FROM my_table;
32+----+---------+---------------------+
33| id | user_id | dt |
34+----+---------+---------------------+
35| 1 | 101 | 2018-10-07 23:21:44 |
36| 2 | 101 | 2018-10-07 23:23:39 |
37+----+---------+---------------------+
382 rows in set (0.00 sec)
39
40INSERT INTO my_table (user_id,dt)
41SELECT 101,NOW()
42 FROM (SELECT 1) x
43 LEFT
44 JOIN my_table y
45 ON y.user_id = 101
46 AND y.dt >= NOW() - INTERVAL 60 SECOND
47 WHERE y.id IS NULL;
48Query OK, 0 rows affected (0.00 sec)
49
50SELECT * FROM my_table;
51+----+---------+---------------------+
52| id | user_id | dt |
53+----+---------+---------------------+
54| 1 | 101 | 2018-10-07 23:21:44 |
55| 2 | 101 | 2018-10-07 23:23:39 |
56+----+---------+---------------------+
572 rows in set (0.00 sec)