繁体   English   中英

SQL单个字段的多个条件

[英]SQL Multiple condition on single field

嗨,有人可以帮助我关于SQL

我在表格中有这些数据:

date_added | location     |  status
2012-08-01    Manila           1
2012-08-01    Japan            1
2012-08-01    Cebu             1

2012-08-04    Manila           1
2012-08-04    Cebu             1
2012-08-04    Africa           1

2012-08-06    Manila           1
2012-08-06    Japan            1
2012-08-06    Cebu             1

如何在“马尼拉”,“日本”,“宿雾”中获取date_added结果并且状态= 1

在我得到日期之前,这三个数据必须存在。

结果应该是:基于此表

date_added 
 2012-08-01
 2012-08-06

因为在2012-08-04'日本'不存在。

我当前的SAMPLE SQL:

SELECT date_added FROM TABLE WHERE location ='Manila' AND location ='Japan' 
       AND location ='Cebu' AND STATUS =1;

请帮助.....任何帮助将不胜感激

试试这个:

SELECT DATE_ADDED 
FROM TABLE 
WHERE LOCATION IN ('MANILA' , 'JAPAN' , 'CEBU')
AND STATUS =1
GROUP BY DATE_ADDED
HAVING (COUNT(DISTINCT LOCATION)=3)

您需要SQL IN运算符:

SELECT date_added FROM TABLE WHERE location IN ('Manila', 'Japan', 'Cebu') AND STATUS =1;

或者,您需要使用OR运算符并括住location语句:

SELECT date_added FROM TABLE WHERE ( location ='Manila' OR location ='Japan' OR location ='Cebu' ) AND STATUS =1;

试试这个

SELECT date_added FROM TABLE WHERE location ='Manila' or location ='Japan'  or location ='Cebu' AND STATUS =1;

要么

select date_added FROM TABLE WHERE location in ('Manila','Japan','Cebu') AND status='1' GROUPED BY date_added
WHERE location IN ('Manila' , 'Japan', 'Cebu') AND status = 1

当你在同一个字段上使用AND条件时,它总是会导致错误,因为一个字段只能有1 possible value 所以你需要使用IN

SELECT Date_added 
FROM   myTable
WHERE  `Location` IN ('MANILA' , 'JAPAN' , 'CEBU')
          AND `Status` =1
GROUP BY Date_added 
HAVING   COUNT(DISTINCT Location) = 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM