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

PHP MySQL 仅显示表中多条记录的唯一值

PHP MySQL 仅显示表中多条记录的唯一值

PHP
墨色风雨 2021-11-05 10:18:23
我很难过,我不知道如何使用多个不同的标识符在表上获取结果,然后对结果进行分组这是我的表ProjectFieldValue简而言之id | project_id | textValue      | dateValue  | fieldKey================================================================1  | 1000       | Closed         | NULL       | contract_status================================================================2  | 1000       | NULL           | 2019-05-01 | closing_date================================================================3  | 1001       | Open           | NULL       | contract_status================================================================4  | 1001       | NULL           | 2019-05-22 | closing_date================================================================5  | 1002       | Closed         | NULL       | contract_status================================================================6  | 1002       | NULL           | 2019-05-11 | closing_date================================================================7  | 1003       | Closed         | NULL       | contract_status================================================================8  | 1003       | NULL           | 2019-05-24 | closing_date================================================================我需要运行查询以获取所有记录...“contact_status”的fieldKey和“Open”的fieldKey的textValue“close_date”的fieldKey和2019-05-01 AND 2019-05-30之间的dateValue这是我尝试过的,我只是得到一个空白的查询结果集select pfv.* from ProjectFieldValue pfvwhere (pfv.dateValue between '2019-05-01' AND '2019-05-30' AND pfv.fieldKey = 'closing_date') AND (pfv.textValue = 'Closed' AND pfv.fieldKey = 'contract_status')
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

空白是可以的,因为您试图获取字段键 = 结束日期和字段键 = 合同状态的所有记录,这是不可能的。


您可以尝试使用 OR 代替 AND。


喜欢


select pfv.* 

from ProjectFieldValue pfv

where (pfv.dateValue between '2019-05-01' AND '2019-05-30' AND pfv.fieldKey = 'closing_date') 

OR(pfv.textValue = 'Open' AND pfv.fieldKey = 'contract_status')

此外,我更改了 pfv.textValue = 'Close' 为 pfv.textValue='Open' 因为““contact_status”的 fieldKey 和“Open”的 fieldKey 的 textValue”


然后你会得到满足的记录


“contact_status”的 fieldKey 和“Open”的 fieldKey 的 textValue 或

“close_date”的fieldKey和2019-05-01 AND 2019-05-30之间的dateValue

如果只想获取 1.“contact_status”的 fieldKey 和“Open”的 fieldKey 的 textValue


你可以


select pfv.* 

from ProjectFieldValue pfv

where pfv.textValue = 'Open' AND pfv.fieldKey = 'contract_status'

并只获取记录


“close_date”的fieldKey和2019-05-01 AND 2019-05-30之间的dateValue

select pfv.* 

from ProjectFieldValue pfv

where (pfv.dateValue between '2019-05-01' AND '2019-05-30' AND pfv.fieldKey = 'closing_date')



查看完整回答
反对 回复 2021-11-05
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我认为您需要将您的选择拆分为 2 并进行子查询.... 检查此文档:

https://www.w3resource.com/mysql/subqueries/index.php


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

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