我的数据库上有太多门票的客户,这些门票的状态太多了。我想要一个可以拉出cutomer的票号的查询,只有当票证状态为!='已关闭'时。否则它应该返回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 COUNT(*) 来自aim_items 在哪里custom_field_3!='已关闭' AND custom_field_22 = 221226 )大于0 然后 ITEM_ID 其他 空值 结束 AS ticketID 来自aim_items 哪里 custom_field_3!='已关闭' 和 custom_field_22 = 221226 谢谢你的合作。
答案 0 :(得分: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
上面将基本选择封装到子查询中,以提供空结果。
答案 1 :(得分: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