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]

Reply via email to