See below: ----------Original Message---------
> If it was me writing the code, I'd use two different update statements: > > a) an UPDATE to initialize the DateTime to Now() and set the counter to > 1 > when the page is first hit > b) another UPDATE to increment the counter on all of the remaining hits > > Something like this (assuming Java is your programming language): > > // Logic to display the rest of the web page > ... > > // Obtain the current row for the counter. > getCurrentCounterRow(); > > // Store the current counter value in a variable > counter = ; //value obtained from current row > > // Adjust the counter row depending on the value of the counter > if (counter == 0) { > update COUNTER_TABLE > set CounterValue = 1; > CounterStartDateTime = now(); > } > else { > update COUNTER_TABLE > set CounterValue = CounterValue + 1; > } > > // Display the counter value that applies after the IF statement was > executed. > ... > > etc. > > Just my two cents worth.... > > Rhino I'm using CFMX. Problem is that the display of the count (on the page) has also to show the initial start date, so I'm fairly sure I have to go the Update then Select route, rather than the other way around. And I really don't think I want to have a Select, Update, Select routine.... I can be fairly certain that the record exists (or can code around it if it doesn't), so I'll probably stick with what I've got. Thanks anyway! Terry > > ----- Original Message ----- > From: "Terry Riley" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Tuesday, March 09, 2004 12:11 PM > Subject: Update field conditionally > > > > Using v4.0.15 on WinNT under Apache. > > > > For my sins, the client has insisted on creating a page counter! > > > > The fields are to be CounterCode (Varchar 10), CounterValue (Int 10) > > and > > CounterStartDateTime (DateTime). > > > > Setting up the table is no problem. However, client wants to have the > > CounterStartDateTime field updated to Now() only on the first hit to > > that > > page, so that it can be reported as the start of the count > > (logically). > > Otherwise, it remains as a NULL value, and the CounterValue remains > > as 0. > > > > I have tried to find out if it is possible to do a single-pass update, > > changing the CounterValue from 0 to 1 and the CounterStartDateTime to > > the > > current time on condition that it is currently NULL, with something > > like: > > > > UPDATE Table SET CounterValue = CounterValue+1, CounterStartDateTime = > > (IF CounterStartDateTime IS NULL, Now()) > > > > without success. > > > > I've looked through the on-line manual, and cannot find any reference > > to > > such conditional updates. Perhaps I missed it. > > > > Any clues, please? > > > > Cheers > > Terry Riley > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]