Php 是否有一种方法可以根据可以等于多个值的列的值从sql表中检索数据?
我有一个SQL表,其中包含一些关于项目的信息,大致如下表所示。在此表中,一个项目可能有多个实例,因为它有多个任务。每个任务都有一个状态,每个状态都有一个与其相关的id。如何编写一个查询,以获取状态为“打开”、“关闭”、“计费”或“取消”的project 1的所有实例?即使没有状态为“已取消”的project one实例Php 是否有一种方法可以根据可以等于多个值的列的值从sql表中检索数据?,php,mysql,sql,mariadb,Php,Mysql,Sql,Mariadb,我有一个SQL表,其中包含一些关于项目的信息,大致如下表所示。在此表中,一个项目可能有多个实例,因为它有多个任务。每个任务都有一个状态,每个状态都有一个与其相关的id。如何编写一个查询,以获取状态为“打开”、“关闭”、“计费”或“取消”的project 1的所有实例?即使没有状态为“已取消”的project one实例 PROJECT NAME|PROJECT ID|TASK|STATUS|status_code project_1 1 seo open
PROJECT NAME|PROJECT ID|TASK|STATUS|status_code
project_1 1 seo open 5
project_1 1 blog closed 0
project_1 1 data billed 2
project_2 2 seo open 5
project_3 3 seo open 5
project_4 4 seo open 5
project_5 5 seo open 5
注意:每个状态都与一个状态id相关
0 = closed
1 = cancelled
2 = billed
3 = paid
4 = on hold
5 = open
6 = pending
到目前为止,我的查询如下
"SELECT * FROM Table WHERE project_id = 1 AND Status_Code = (0 OR 1 OR 2 OR 3 OR 4 OR 5 OR 6)"
尽管表中存在多个status_code=2 0和5的实例,但这不会返回任何结果
如果我将查询更改为
SELECT * FROM table WHERE project_id = 1 AND status_code = 2
我确实获得了状态代码2的所有实例,但我需要能够检查所有这些实例,并且可能有一个实例不存在于所查询的项目中。试试这个
SELECT * FROM Table
WHERE project_id = 1 AND Status_Code IN( 1, 2, 3, 4, 5, 6)
另外,您可能希望过滤掉重复的,所以
SELECT DISTINCT [PROJECT NAME], [PROJECT ID]
FROM Table
WHERE project_id = 1 AND Status_Code IN( 1, 2, 3, 4, 5, 6)
试试这个
SELECT * FROM Table
WHERE project_id = 1 AND Status_Code IN( 1, 2, 3, 4, 5, 6)
另外,您可能希望过滤掉重复的,所以
SELECT DISTINCT [PROJECT NAME], [PROJECT ID]
FROM Table
WHERE project_id = 1 AND Status_Code IN( 1, 2, 3, 4, 5, 6)
首先,如果这是一个任务表,为什么没有任务id 如果我对问题理解正确,那么
分组依据
或区分
SELECT project_id, task, status FROM Table WHERE project_id = 1 AND Status_Code IN (0,1,2,3,4,5,6)
GROUP BY
project_id, task, status
它将返回所有3列的每个不同值
uainv distinct不带group by,将返回相同的首先,如果这是一个任务表,为什么没有任务id 如果我对问题理解正确,那么
分组依据
或区分
SELECT project_id, task, status FROM Table WHERE project_id = 1 AND Status_Code IN (0,1,2,3,4,5,6)
GROUP BY
project_id, task, status
它将返回所有3列的每个不同值
不带group by的uainv distinct将返回相同的