我正在使用mysql数据库服务器.. 我有下表,只包含一个包含以下数据的列(其中0是单独的排序整数)
Number
-------
0
1
2
3
0
4
5
0
6
7
8
0
9
10
0
11
我希望得到每个0之后的第一个值,例如输出将是
Output
------
1
4
6
9
11
答案 0 :(得分:3)
除非您指定ORDER BY
子句,否则MySQL不保证退货订单。如果你按照插入它们的顺序得到值,那么这只是巧合。目前,没有办法可靠地做你想做的事。您需要添加一些内容来订购数据。设置为autoincrement
的ID字段可能会这样做。
答案 1 :(得分:1)
SELECT id1 FROM table WHERE id IN
(SELECT t1.id+1 FROM table t1
LEFT JOIN table t2 ON t1.id1=t2.id
WHERE t2.id1 IS NULL);
假设增量字段没有间隙,但因为它将被创建..
答案 2 :(得分:0)
首先,您应该将自动增量键添加到表中以保证记录的顺序。
Alter table T ADD id INT PRIMARY KEY AUTO_INCREMENT;
以下是查询:
select * from T as T1
Where (SELECT Number From T where Id<T1.Id ORDER BY ID DESC LIMIT 1) = 0
order by ID