简体   繁体   English

SQL单个字段的多个条件

[英]SQL Multiple condition on single field

Hi Can someone help me about sql 嗨,有人可以帮助我关于SQL

i have this data in my Table: 我在表格中有这些数据:

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

how can i get the date_added result with the location in 'Manila' , 'Japan', 'Cebu' and has status =1 如何在“马尼拉”,“日本”,“宿雾”中获取date_added结果并且状态= 1

The three data must exist before i can get the date. 在我得到日期之前,这三个数据必须存在。

Result should be: based on this table 结果应该是:基于此表

date_added 
 2012-08-01
 2012-08-06

since on 2012-08-04 'Japan' did not exists. 因为在2012-08-04'日本'不存在。

My Current SAMPLE SQL: 我当前的SAMPLE SQL:

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

Please help.....any help will greatly appreciated 请帮助.....任何帮助将不胜感激

try this: 试试这个:

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

You need the SQL IN operator: 您需要SQL IN运算符:

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

Or alternatively, you need to use the OR operator and bracket the location statements: 或者,您需要使用OR运算符并括住location语句:

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

Try this 试试这个

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

or 要么

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

when you use AND condition on the same field,it will always result to false because a field can only have 1 possible value . 当你在同一个字段上使用AND条件时,它总是会导致错误,因为一个字段只能有1 possible value So you needto use IN for that 所以你需要使用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