On Wednesday, March 09, 2005 07:49, Philippe Poelvoorde wrote:
> Daniel Kasak wrote:
>> Homam S.A. wrote:
>>
>>> In the documentation, it doesn't mention which version
>>> of MySQL supports the CASE statement, but it refers to
>>> stored procedures, so is it only supported for 5.x?
>>>
>>> I can't get any example of a CASE statement work in MySQL.
>>>
>>>
>>>
>> <snipped>
>>
>>> For example, I can execute the following in MS SQL
>>> Server:
>>>
>>> UPDATE MyTable
>>> SET
>>> field1 = CASE WHEN field3 = 1 THEN 10 ELSE 20 END,
>>> field2 = field2 | CASE WHEN field4 = 'B' THEN 1 ELSE 0
>>> END | CASE WHEN field4 = 'C' THEN 2 ELSE 0 END
What error do you get? I can get a statement similar to this to work.
>> Case works in 4.0.x ( and maybe before, haven't checked ).
>> Your problem is elsewhere.
>> I'm not sure if you can use the pipe symbol as an OR operator in the
>> way you want - to be honest I haven't used it at all in SQL.
>> Try rewriting it to use nothing but case statements ( no | operators
>> ).
>>
>
> http://dev.mysql.com/doc/mysql/en/logical-operators.html
>
> it's || not | (not sure about bit-operation...)
The | is a bitwise OR.
http://dev.mysql.com/doc/mysql/en/bit-functions.html
--
Tom Crimmins
Interface Specialist
Pottawattamie County, Iowa