在同一列中过滤不同的值

时间:2018-12-17 03:16:44

标签: php mysql

对于在MYSQL的同一列中过滤不同的值,我有什么想法或建议。

我尝试过的操作,

SELECT * FROM (select  * FROM `testschema.pd` where status <> 2)  alldata where status =1 order by week desc
  

enter image description here

作为图片, 值1 =打开,2 =拒绝,5 =关闭, 我想过滤掉那些已经显示为2(已拒绝)和5(已关闭)的1(打开)文件。

2 个答案:

答案 0 :(得分:0)

我假设id到状态的映射是一对一的。

您有以下数据,

Table : temp
id      status
181689  1
181689  5
181690  1
181690  5
181691  1
181691  2

要查找打开和关闭的记录,可以使用

select id from temp
where status in (1, 5)
group by id
having count(status) > 1
order by id;

答案 1 :(得分:-1)

我认为您需要过滤状态为1(打开)和2(已拒绝)的数据。 从SQL过滤器中,您需要删除状态5(关闭)。

为此,您可以使用以下查询。

SELECT * FROM alldata
WHERE status IN ('1', '2');

以上查询将过滤状态为1和2的数据。