Re: Re: record pointer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

> mysql> select id,cat from table where cat=(select cat from table where id=51);
> +---------+------+
> |      id | cat  |
> +---------+------+
> |      40 | FLK  |
> |      41 | FLK  |
> |      42 | FLK  |
> |      44 | FLK  |
> |      45 | FLK  |
> |      46 | FLK  |
> |      47 | FLK  |
> |      48 | FLK  |
> |      49 | FLK  |
> |      50 | FLK  |
> |      51 | FLK  |
> |      52 | FLK  |
> |      53 | FLK  |
> |      54 | FLK  |
> |      55 | FLK  |
> |      56 | FLK  |
> |      57 | FLK  |
> |      58 | FLK  |
> |      59 | FLK  |
> |      60 | FLK  |
> +---------+------+
> 20 rows in set (0.02 sec)

> now I can select the whole cat when I enter an ID that is fine! but the query should 
> stop at id=$id or in other words in the end it should POINT to id=$id
> in the above example the last record would be the record with id=51
> do I need another SELECT here?

If I understand that correctly, you only need to add the extra condition
to the WHERE clause of the main query.  So:

SELECT id, name, cat FROM table 
    WHERE cat = (SELECT cat FROM table WHERE id = $ID) AND id <= $ID;

This should display all rows, before and including the row with the same
'cat' as 'id' has. For your example of $ID = 51 it should display:

+---------+------+
|      id | cat  |
+---------+------+
|      40 | FLK  |
|      41 | FLK  |
|      42 | FLK  |
|      44 | FLK  |
|      45 | FLK  |
|      46 | FLK  |
|      47 | FLK  |
|      48 | FLK  |
|      49 | FLK  |
|      50 | FLK  |
|      51 | FLK  |
+---------+------+


Niel

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux