如何只检索之前未查询过的记录?
例如:
如果我的表中有3条记录:
我做了一个像
这样的查询`SELECT * FROM TABLE`
我将获得上述三条记录。如果我再插入三个记录并再次进行查询,我只想看看:
有没有办法让这成为可能?
谢谢!
答案 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)