-4

我的数据库中有客户的票太多,而这些票的状态太多。我想要一个可以提取客户票号的查询,前提是票证的状态!='已关闭'。否则它应该返回null。

非常感谢您的快速响应。

编辑:这是我的查询:

SELECT CASE WHEN custom_field_3 != 'Closed' THEN item_id ELSE NULL END AS ticketID 
FROM aims_items 
WHERE custom_field_22 =221226

它现在有效,这是我的解决方案:

SELECT CASE WHEN ( SELECT COUNT(*) FROM targets_items WHERE custom_field_3 != 'Closed' AND custom_field_22 =221226 )>0 THEN item_id ELSE NULL END AS ticketID FROM targets_items WHERE custom_field_3 != 'Closed' AND custom_field_22 =221226 感谢您的合作。

4

2 回答 2

0

试试这个查询:

SELECT IF(custom_field_3!='Closed',item_id,'') as ticketID FROM `aims_items`

请记住,我没有写出您表中的确切字段。这只是向您展示的示例。有关详细信息,请参阅以下链接
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

于 2013-01-08T13:14:09.143 回答
0

如果没有表结构,就无法评估问题所在。根据您的描述,一个简单的查询如

SELECT item_id from aim_items WHERE custom_field_3 != 'Closed' AND custom_field_22 = 221226

就足够了。然后,您可以计算返回的行数以确定结果。

但是,如果您需要返回 null 作为结果,请尝试以下操作:

SELECT (SELECT item_id from aim_items WHERE custom_field_3 != 'Closed' AND custom_field_22 = 221226) AS ticketID

上面将基本的选择封装成一个子查询,提供一个空结果。

于 2013-01-08T13:10:09.860 回答