On Tue, Jan 03, 2006 at 10:15:17AM -0500, [EMAIL PROTECTED] wrote:
> test mjom <[EMAIL PROTECTED]> writes:
> 
> >   create table tbl1 ( id integer primary key autoincrement, ref 
> >   integer, sts varchar(16));
> >   insert into tbl1 (ref,sts) values (10, 'ready' );
> >   insert into tbl1 (ref,sts) values (20, 'ready' ); insert into tbl1 
> >   (ref,sts) values (30, 'ready' );
> >   update tbl1 set sts='busy' where sts='ready' ORDER BY ref DESC LIMIT 1;
> >   
> >   => i would like to have only the third record (30,'busy') updated.
> 
> How about something like
> 
>   UPDATE tbl1
>     SET sts = 'busy'
>     WHERE ref =
>       (SELECT ref
>          FROM tbl1
>          WHERE sts = 'ready'
>          ORDER BY ref DESC
>          LIMIT 1);

That won't work. Instead:                                                       
                
                                                                                
                
UPDATE ...                                                                      
                
    WHERE id =                                                                  
                
        (SELECT id                                                              
                
            FROM tbl1                                                           
                
            WHERE ...                                                           
                
        ); 
-- 
Jim C. Nasby, Sr. Engineering Consultant      [EMAIL PROTECTED]
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Reply via email to