2015-10-17 111 views
0

我是MySQL的新手。我有一个select语句,我一直在努力,我得到一个语法错误(错误代码:1064)。在下面的查询//////////之间的部分表示已经有语法错误:语法错误在我的SELECT语句中,在Where子句中的Case

SELECT * FROM `customers` WHERE 
First_name !='0' And 
Last_name !='0' And 

(Phone !='0' And Phone >= 10 And Phone Not like '111%' And Phone Not like '222%' And Phone Not like '333%' And Phone Not like '444%' And Phone Not like '555%' And Phone Not like '666%' And Phone Not like '777%' And Phone Not like '888%' And Phone Not like '999%' And Phone Not like '800%' And Phone Not like '877%' And Phone Not like '866%' And Phone Not like '911%' And Phone Not like '123%' And Phone Not like '1%' And Phone Not like '0%') And 

Age !='0' And 
Gender !='0' And 

//////////////////////////////////////////// 

(Marital_status !='0' or Case when Marital_status = 'Single' then ((Age between 25 to 75)(Gender='Female' and Annual_income is between $40k to $200k)(Gender='Female')(Zip_code is between 90000 to 93099))or Case when Marital_status='Cohab' then ((Age between 25 to 75)(Annual_income >= 40000)(Zip_code is between 90000 to 93099)) or Case when Marital_status='Married' then ((Age between 25 to 75)(Annual_income is between $40k to $200k)(Zip_code is between 90000 to 93099))) And 

///////////////////////////////////////////// 

Annual_income !='0' And 
Zip_code !='0' 
+0

请分享您的错误消息。 – fejd

回答

0

我不知道你的模式是或你的表结构。我不知道这是否是你想要在你的Select完成的任务,但你CASE语句需要更多像这样看起来是为了在语法上是正确的:

or Case single when Marital_status = 'Single' then ((Age between 25 and 75) and Gender='Female' and (Annual_income between 40 and 200) and (Zip_code between 90000 and 93099)) Else 1=1 END 
or Case cohab when Marital_status='Cohab' then ((Age between 25 and 75) and Annual_income >= 40000 and (Zip_code between 90000 and 93099)) ELSE 1=1 END 
or Case married when Marital_status='Married' then ((Age between 25 and 75) and (Annual_income between 40 and 200) and (Zip_code between 90000 and 93099)) Else 1=1 END; 

Case Statement syntax

Case statement in where clause

Between in Mysql