I beleive the below solution will not detect rows missing from the very top of the table, try this... select ifnull((select max(a.test_id) +1 from tests a where a.test_id<b.test_id),1) as 'from' ,b.test_id -1 as 'to' from tests b left outer join tests x on x.test_id=b.test_id -1 where x.test_id is NULL and b.test_id>1 order by 1
Ed ________________________________ From: Peter Brawley [mailto:[EMAIL PROTECTED] Sent: Thursday, August 18, 2005 10:18 AM To: [EMAIL PROTECTED] Cc: Scott Hamm; 'Mysql ' Subject: Re: Deleted rows Scott, Shawn, >The OP would like to detect that 4,5,6, and 7 are missing from the >sequence. Your query would have only found that 7 was missing. Right! For sequences longer than 1 you need something like... SELECT a.id+1 AS 'Missing From', MIN(b.id)-1 AS 'To' FROM test AS a, test AS b WHERE a.id < b.id GROUP BY a.id HAVING a.id + 1 < MIN(b.id) ORDER BY 1; PB ----- [EMAIL PROTECTED] wrote: Peter, Your query may work for data with single-row gaps (like his example data) but it will not work if the sequence skips more than one number. Look at this sequence: 1,2,3,8,9,10 The OP would like to detect that 4,5,6, and 7 are missing from the sequence. Your query would have only found that 7 was missing. Nice try, but sorry. It just won't meet the need. Shawn Green Database Administrator Unimin Corporation - Spruce Pine Peter Brawley <[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]> wrote on 08/18/2005 10:56:34 AM: > Scott, > > >How do I execute a query that shows missing ID's like so: > > SELECT id AS i > FROM tbl > WHERE i <> 1 AND NOT EXISTS( > SELECT id FROM tbl WHERE id = i - 1 > ); > > PB > > ----- > > Scott Hamm wrote: > If I got a table as follows: > > > ID foo > 1 12345 > 2 12346 > 4 12348 > 6 12349 > 7 12388 > 9 12390 > How do I execute a query that shows missing ID's like so: > > 3 > 5 > 8 > > I wouldn't expect for it to show deleted data that was deleted, just show > the "skipped" ID's. > > That way I determine if operator deleted too much (cheating at QC) > > Is it possible? > > > > No virus found in this incoming message. > Checked by AVG Anti-Virus. > Version: 7.0.338 / Virus Database: 267.10.12/75 - Release Date: 8/17/2005 > No virus found in this outgoing message. > Checked by AVG Anti-Virus. > Version: 7.0.338 / Virus Database: 267.10.12/75 - Release Date: 8/17/2005 > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] ________________________________ No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.338 / Virus Database: 267.10.12/75 - Release Date: 8/17/2005