【发布时间】:2014-07-27 14:00:33
【问题描述】:
我需要处理 mysql 表中的一些记录。问题是可递增的 id 不是知道下一条或上一条记录是什么的可靠方法,因为有些记录已被删除。
我的表格有三个字段。
ID、编号、状态
.
我想一次读取一个数字,我不介意每次我想读取下一个或上一个时从数据库中获取它。一旦我得到数字,我想将它加倍并写入值到列状态。
使用游标会很好,但游标不允许我更新我正在读取的基础表。有没有一种解决方案可以让我读取下一个和上一个值,同时允许我更新当前行?
谢谢。
【问题讨论】:
-
虽然行可能会被删除,但
WHERE id > X ORDER BY id ASC LIMIT 1或WHERE id < X ORDER BY id DESC LIMIT 1之类的内容仍应为您提供下一行/上一行 -
这很聪明。我想出了这个例子
SELECT * FROM randomtable WHERE id > $id ORDER BY id LIMIT 1;,但它是如何工作的?你能解释一下吗? -
有什么要解释的?
-
这很简单。你知道
id1 < id2意味着id1在id2之前插入。现在您需要做的就是找到给定$id的最接近 元素。从那里开始,我认为查询是不言自明的——第一个查询找到第一个大于 x 的 id
标签: java php android mysql json