选择Mysql之前尚未查询的记录

时间:2017-12-29 14:59:10

标签: mysql database select

如何只检索之前未查询过的记录?

例如:

如果我的表中有3条记录:

  • 记录1
  • 记录2
  • 记录3

我做了一个像

这样的查询
`SELECT * FROM TABLE` 

我将获得上述三条记录。如果我再插入三个记录并再次进行查询,我只想看看:

  • 记录4
  • 记录5
  • 记录6

有没有办法让这成为可能?

谢谢!

2 个答案:

答案 0 :(得分:3)

一种可靠的方法是在表中添加某种标志,指示该行之前是否已“读取”,并按如下方式进行查询:

START TRANSACTION;

SELECT * FROM my_table WHERE read_flag = 0 FOR UPDATE;

UPDATE my_table SET read_flag = 1 WHERE id = my_table.id;

COMMIT;

请注意,这需要InnoDB引擎。

答案 1 :(得分:0)

你使用哪种编程方法?

您可以保存“Record3”的ID,然后查询:

select * from table where id > (id_from_record_3)