SQL单个字段上的多个条件


SQL Multiple condition on single field

嗨,有人能帮我了解sql 吗

我的表中有这些数据:

date_addd|位置|状态2012-08-01马尼拉12012-08-01日本12012-08-01宿务12012-08-04马尼拉12012-08-04宿务12012-08-04非洲12012-08-06马尼拉12012-08-06日本12012-08-06宿务1

我如何获得位于"马尼拉"、"日本"、"宿务"且状态=1 的日期编码结果

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

结果应该是:基于此表

日期(_D)2012年8月1日2012年8月6日

自2012年8月4日起,"日本"就不存在了。

我当前的示例SQL:

从表格中选择日期,其中location='Manila',location='Japan'AND location='Cbu'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运算符并将位置语句括起来:

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条件时,它总是会导致false,因为一个字段只能有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