首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义后端售票系统的MySQL查询

自定义后端售票系统的MySQL查询
EN

Stack Overflow用户
提问于 2011-02-02 05:31:35
回答 1查看 361关注 0票数 1

我试图添加一个票务系统到一个定制的后端,为网站的其他部分提供动力。不过,我在订票方面遇到了一点麻烦(一旦有人回复)。我对MySQL相当陌生,不太确定如何继续下去。

目前,我有以下几点:

代码语言:javascript
复制
SELECT * FROM tbl_tickets ORDER BY ti_date_last_reply DESC, ti_date_raised DESC LIMIT 0, 20

以上操作正常,但如果提出了新的票证,则现有的回复将出现在上面。

我在ti_status中存储了4种票证状态-- Open (一张新票证)、 replied (管理员回复了票证)、(客户已回复或添加了更多信息到票证中)和Closed (票证已关闭)。

我想要的是,如果票务状态是Customer-Reply Open(最早的),则MySQL可以通过ti_date_raised对它们进行排序,然后将ti_date_last_reply中找到的添加到正确的时间框架中。离开回答了,关闭了出现在这些查询下面(从最老到最年轻)但是回答了超过关闭了

示例(我在这里使用日期/时间,但在脚本中使用Unix时间):

代码语言:javascript
复制
Date Raised      |   Date Replied   | Status  
----------------------------------------------------------  
2011-01-30-20-30 | -                | Open  
2011-01-31-01-00 | 2011-02-01-09-30 | Customer-Reply  
2011-02-01-10-30 | -                | Open  
2011-02-01-20-00 | 2011-02-01-20-30 | Answered  
2011-02-01-21-00 | 2011-02-01-20-35 | Closed

这样的事情有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-02 05:58:28

代码语言:javascript
复制
SELECT * 
FROM tbl_tickets
ORDER BY FIND_IN_SET(ti_status,'Open,Customer-Reply,Answered,Closed'),
    IF(ti_status = 'Customer-Reply', ti_date_last_reply, ti_date_raised) DESC
LIMIT 0, 20

ti_status更改为状态ID号并将状态(和排序号)存储在第二个表中将提高一个数量级的性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4871103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档