mysql - 我的 select 语句中存在 Case inWhere 子句语法错误

标签 mysql

我是 MySQL 新手。我有一个一直在处理的 select 语句,但出现语法错误(错误代码:1064)。下面的查询中//////////之间的部分指示有语法错误:

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'

最佳答案

我不确定您的架构或表结构是什么。我不确定这是否是您试图在 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

关于mysql - 我的 select 语句中存在 Case inWhere 子句语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192252/

相关文章:

python - 如何使用Python在MYSQL数据库中仅选择最后1分钟的记录

php - 如果其中只有一个记录与另一个字段的给定 id 匹配,则返回非给定 id 的所有记录

mysql - 查找多个列和表中的重复条目

mysql - Windows 上的全新 Ruby on Rails 安装 : MSQL Gem Not Working

mysql - 如何设置同一个表中某些行的列值与其他行的列值相同?

php - 基于之前MySQL查询的算术计算

mysql - SQL 查询 : Copy all rows with Store_ID = 1

c# - 从 visual c# 连接到 MYSQL

MySQL独立选择跨多个列的最后一个值,该值不为空

mysql - 如何将一个实体与另一个可以(但不总是)属于的实体相关联