Selon Chris <[EMAIL PROTECTED]>: > I'm looking for a row numbering in a select statement. Something I can > use to determine in whivh row values are returned in a query. > > I found this insanely old list post: > > http://lists.mysql.com/mysql/337 > > That appears to be what I want, but an examination of the changelogs for > MySQL 3.23 didn't give me any ideas. > > Really what I want to do (with PHP / MySQL 4.1.?) is explained below, > any advice on that would be welcomed as well. > > In PHP I have an an ID and a number, which represents number of rows. > > Taking the base query and table of: > > mysql> SELECT > -> iTempID, > -> sTemp > -> FROM temp; > +---------+---------+ > | iTempID | sTemp | > +---------+---------+ > | 1 | fred | > | 19 | barney | > | 3 | wilma | > | 4 | betty | > | 23 | bam-bam | > | 32 | pebbles | > | 7 | bart | > | 8 | lisa | > | 6 | maggie | > | 10 | homer | > | 12 | marge | > +---------+---------+ > 11 rows in set (0.00 sec) > > > I would like to specfify the id of one of the rows and a distance away > from it, and return those rows, this is how I'm trying to do it with a > row number, I'll use the fake function ROW_NUMBER() to represent the row > number. > > ID: 4 > Distance: 3 > > SELECT > iTempID, > sTemp > FROM temp > WHERE > ROW_NUMBER() BETWEEN > (SELECT ROW_NUMBER() FROM temp HAVING 4=iTempID) > AND > (SELECT ROW_NUMBER() FROM temp HAVING 4=iTempID) + 3 > ; > > +---------+---------+ > | iTempID | sTemp | > +---------+---------+ > | 4 | betty | > | 23 | bam-bam | > | 32 | pebbles | > | 7 | bart | > +---------+---------+ > > Of course, even if there is a ROW_NUMBER() function, It may not act as I > hope in the preceding query due to the sub-queries and/or HAVING clause. > > Any help would be appreciated, > Thanks, > Chris > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > >
hi, your need is: select * from temp LIMIT 3,4; -- 3 because you have to take the fourth and 4 because dist=3+1 to find the position 4, the query is : mysql> select rk from(SELECT @row:[EMAIL PROTECTED] as rk,iTempID, sTemp -> FROM dist) as A -> WHERE iTempID=4; +------+ | rk | +------+ | 4 | +------+ 1 row in set (0.00 sec) Mathias -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]