"Kraer, Joseph" <[EMAIL PROTECTED]> wrote on 11/30/2005 11:58:56 AM:

> I am trying to update a couple of rows in a table by doing the
> following:
> 
> update table
> set column5 = number1
> where column 1 = number2
> and column1 = number3
> 
> but it is not working.  I tried listing the conditions separated by
> commas (where column 1 = number2, column1 = number3) and also didn't
> work.  What am I doing wrong?
> 
> Thanks in advance,
> 
> Joseph "Tito" Kraer
> Business Systems Analyst
> Taylor, Bean & Whitaker Mortgage Corp
> 

UPDATE statements are evaluated on a row-by-row basis. What you actually 
told MySQL to do was to change any rows where column1 has BOTH values at 
the same time. Since one column in a single row cannot possibly have two 
values at once (not even SET columns because they do not have more than 
one set of values at a single time) this condition cannot possibly be met 
and the UPDATE will never happen. Make sense?

You said:
WHERE column1=number2 AND column1=number3

The AND is a logical comparator meaning that both comparisons must be true 
for the WHERE clause to be true and your desired UPDATE to occur.

What I think you wanted to do is to UPDATE two rows. One row where 
column1=number2 and the other row where column1=number3. That is an OR 
situation not an AND situation:
WHERE column1=number2 OR column1=number3

Another way to write that condition is with an IN clause :
WHERE column1 IN (number2, number3)

HTH!

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Reply via email to