- 论坛徽章:
- 93
|
不用 sp 不用 for 不用序列表的解决方案,如有连续断号的,可以做改进:- mysql> select * from idlist;
- +------+
- | id |
- +------+
- | 1 |
- | 2 |
- | 3 |
- | 4 |
- | 5 |
- | 6 |
- | 7 |
- | 8 |
- | 9 |
- | 10 |
- | 11 |
- | 12 |
- | 14 |
- | 16 |
- +------+
- 14 rows in set (0.00 sec)
- mysql> set @last_id := 0;
- Query OK, 0 rows affected (0.00 sec)
- mysql>
- mysql> select lost_id
- -> from
- -> (
- -> select if(isnull(@last_id), "xx", if(@last_id = id - 1, 0, 1)) as fla
- g, @last_id := id, id - 1 as lost_id
- -> from idlist
- -> ) as tmp
- -> where flag = 1;
- +---------+
- | lost_id |
- +---------+
- | 13 |
- | 15 |
- +---------+
- 2 rows in set (0.00 sec)
- mysql>
复制代码 |
|