为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种方法可以根据可以等于多个值的列的值从sql表中检索数据?

有没有一种方法可以根据可以等于多个值的列的值从sql表中检索数据?

PHP
一只名叫tom的猫 2024-01-19 10:23:19
我有一个 SQL 表,其中包含有关项目的一些信息,大致如下表所示。在此表中,一个项目可能有多个实例,因为它有多个任务。每个任务都有一个状态,每个状态都有一个与其相关的 ID。如何编写一个查询来获取项目 1 的所有状态等于打开、关闭、计费或取消的实例?即使项目一没有状态为已取消的实例?PROJECT NAME|PROJECT ID|TASK|STATUS|status_code    project_1        1       seo  open   5project_1        1       blog closed 0 project_1        1       data billed 2 project_2        2       seo  open   5project_3        3       seo  open   5project_4        4       seo  open   5project_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 的所有实例,但我需要能够检查所有这些实例,并且可能正在查询的项目中不存在实例。
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

尝试这个


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)


查看完整回答
反对 回复 2024-01-19
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

首先,如果这是一个任务表,为什么没有任务 ID?


如果我对问题的理解正确,那么GROUP BY或者DISTINCT


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 的每个不同值,如果没有 group by,将返回相同的值


查看完整回答
反对 回复 2024-01-19
  • 2 回答
  • 0 关注
  • 29 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信