Try this. The second set ... select gives you what you want. However, the group by may interfere with the rest of your logic. You also don't really need the mod(@a,2) in the result set, just in the having. mysql> set @a:=0; Query OK, 0 rows affected (0.00 sec)
mysql> select @a:[EMAIL PROTECTED],mod(@a,2),ordr_ID, poft_Sub_Month from er_poft limit 10; +----------+-----------+---------+----------------+ | @a:[EMAIL PROTECTED] | mod(@a,2) | ordr_ID | poft_Sub_Month | +----------+-----------+---------+----------------+ | 1 | 1 | 4245 | 01 | | 2 | 0 | 4323 | 01 | | 3 | 1 | 4328 | 01 | | 4 | 0 | 4329 | 01 | | 5 | 1 | 4331 | 01 | | 6 | 0 | 4332 | 01 | | 7 | 1 | 4333 | 01 | | 8 | 0 | 4335 | 01 | | 9 | 1 | 4343 | 01 | | 10 | 0 | 4344 | 01 | +----------+-----------+---------+----------------+ 10 rows in set (0.00 sec) mysql> set @a:=0; Query OK, 0 rows affected (0.00 sec) mysql> select @a:[EMAIL PROTECTED],mod(@a,2),ordr_ID, poft_Sub_Month from er_poft group by 3,4 having mod(@a,2) = 0 limit 5; +----------+-----------+---------+----------------+ | @a:[EMAIL PROTECTED] | mod(@a,2) | ordr_ID | poft_Sub_Month | +----------+-----------+---------+----------------+ | 2 | 0 | 4323 | 01 | | 4 | 0 | 4329 | 01 | | 6 | 0 | 4332 | 01 | | 8 | 0 | 4335 | 01 | | 10 | 0 | 4344 | 01 | +----------+-----------+---------+----------------+ 5 rows in set (0.00 sec) -----Original Message----- From: Jay Blanchard [mailto:[EMAIL PROTECTED] Sent: Thursday, January 27, 2005 8:50 AM To: Alessandro Sappia; mysql@lists.mysql.com Subject: RE: How to select every second record [snip] Jay Blanchard wrote: > [snip] > Is it possible to select only every second record from a record set? > > I should select the record-number 1, 3, 5, 7, 9, ... or record-number 2, > 4, > 6, 8, ... > > Can this be done with LIMIT? > [/snip] > > Not LIMIT, but you can use MOD, especially with an auto-increment field > (id in this case is the auto-increment field) > > select * from table where mod(id, 2) <> '0' returns odd rows > select * from table where mod(id, 2) <> '1' returns even rows > You have to do it with LIMIT beacuse id may not help you... so select * from table where <condition> [group by <field>] [order by <field> [desc]] LIMIT 2,1 this select just second resultrow from any kind of resultset made using every thing you like in where/order by/groub by and not being limited by using IDs (auto_increment) [/snip] The problem is that this only returns ONE record, the OP wanted every other record -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]