How about this?

update t set onoffflag = if (name <> 'China', onoffflag, ( if (location =
'Table', 1, 0)  )    );

This leaves any onoffflag untouched if name is not China, which I assume you
wanted to do.



On Thu, Jan 8, 2009 at 2:18 PM, Christoph Boget
<christoph.bo...@gmail.com>wrote:

> Consider the folowing dataset:
>
> +----+------------+-------------+-------------+---------------+
> | id    | Name     | Location    | OnOffFlag |  Description |
> +----+------------+-------------+-------------+---------------+
> |  1     | Paper    | Cabinet     |  0             | Blah            |
> |  2     | Plastic   | Cabinet     |  0             | Blah            |
> |  3     | China    | Cabinet     |  1             | Blah            |
> |  4     | Glass    | Cabinet     |  0             | Blah            |
> |  5     | China    | Table         |  0             | Blah            |
> |  6     | China    | Cabinet     |  1             | Blah            |
> +----+------------+-------------+-------------+---------------+
>
> Is there a way to, using a single query, set the OnOffFlag to 1 for
> the record that matches [Name=China AND Location=Table] at the same
> time setting the OnOffFlag to 0 for records that match [Name=China AND
> Location!=Table]?  I know I can do it in 2 queries but I am curious to
> know if it can actually be done in 1.
>
> thnx,
> Chris
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql?unsub=jlyons4...@gmail.com
>
>


-- 
Jim Lyons
Web developer / Database administrator
http://www.weblyons.com

Reply via email to