That won't work in MySQL. You'll get this error message:

#1093 - You can't specify target table 'Stores' for update in FROM clause

And by the way, if you are going to use "Order" as a column name
you'll need to enclose it in backticks in the SQL query otherwise it
will fail on that count i.e.: this is right (even though the SQL will
fail):

UPDATE Stores Set `Order` = (SELECT (MAX(`Order`) + 1) FROM Stores
LIMIT 1) WHERE `Order` = 0



2009/12/1 Ken Golovin <[email protected]>:
> just use a nested select. not tested, but this should work:
>
> UPDATE Stores Set Order = (SELECT (MAX(Order) + 1) FROM Stores LIMIT 1)
> WHERE Order = 0;
>
>
> ----- Original Message -----
> From: "Super Steve" <[email protected]>
> To: "NZ PHP Users Group" <[email protected]>
> Sent: Tuesday, December 01, 2009 11:29 AM
> Subject: [phpug] Re: Rotating Items on a Daily Basis?
>
>
> Hmmm...
>
> UPDATE Stores Set Order = MAX(Order) + 1 WHERE Order = 0;
>
> Results in Error #1111 - Invalid use of group function
>
> Note sure why....
>
> On Dec 1, 10:13 am, Simon J Welsh <[email protected]> wrote:
>> One way would be to add a column to the table, say Order, with values from
>> 1 to max. Then, using a crontab or some such, UPDATE Stores SET Order =
>> Order - 1; UPDATE Stores Set Order = MAX(Order) + 1 WHERE Order = 0;
>>
>> Grab the stores sorted by Order.
>>
>> On 1/12/2009, at 10:09 AM, Super Steve wrote:
>>
>>
>>
>>
>>
>> > I've got a client that wants to display on his website a list of
>> > retail stores that stock his products. To facilitate this we have all
>> > of the store details in a MySQL database.
>>
>> > But rather than display all of the stores in alphabetical or location
>> > order, my client wants to rotate the stores so each one gets a turn at
>> > being at the top. The idea is that at the beginning of each day the
>> > store that was on the top yesterday will move to the bottom and all
>> > the other stores move up one. For the rest of the day the stores are
>> > displayed in this order, i.e they maintain their positions for the
>> > whole day. Then next day the top one goes to the bottom and they all
>> > move up one.
>>
>> > Does anyone have any idea on how I can achieve this? I'm not looking
>> > for actual PHP code, just pseudo code to get me on the right track.
>>
>> > --
>> > NZ PHP Users Group:http://groups.google.com/group/nzphpug
>> > To post, send email to [email protected]
>> > To unsubscribe, send email to
>> > [email protected]
>>
>> ---
>> Simon Welsh
>> Admin ofhttp://simon.geek.nz/
>>
>> Who said Microsoft never created a bug-free program? The blue screen
>> never, ever crashes!
>>
>> http://www.thinkgeek.com/brain/gimme.cgi?wid=81d520e5e
>
> --
> NZ PHP Users Group: http://groups.google.com/group/nzphpug
> To post, send email to [email protected]
> To unsubscribe, send email to
> [email protected]
>
>
> --
> NZ PHP Users Group: http://groups.google.com/group/nzphpug
> To post, send email to [email protected]
> To unsubscribe, send email to
> [email protected]
>



-- 
Chris Hope
The Electric Toolbox Ltd

Email: [email protected]
Web: www.electrictoolbox.com
Phone: +64 9 522 9531
Mobile: +64 21 866 529

-- 
NZ PHP Users Group: http://groups.google.com/group/nzphpug
To post, send email to [email protected]
To unsubscribe, send email to
[email protected]

Reply via email to