我有非常基本的PHP知识,并且已经给这个系统修改。
有一张桌子,其中有销售人员可以致电的专业客户。目前,它从表的开头开始,并按照通常在Mysql中的方式向下运行。
我希望它首先调用所有新记录然后通过旧记录。
我已经尝试过使用ORDER BY lead_id DESC,但这似乎不起作用,还有lead_callcount ASC,但又不起作用。
我一直在查看CASE选项,但我不知道自己使用它。
目前代码
public static function getNextLead(){
$lead_res = Database::get()->data->query("SELECT `lead_id` FROM `" . DATABASE_TBL_LEADS . "` WHERE (`lead_disposition` IS NULL OR `lead_disposition` = 1) AND (`lead_timeout` IS NULL OR `lead_timeout` < NOW()) AND (`lead_locked` = '0000-00-00 00:00:00' OR `lead_locked` IS NULL) AND `lead_active` = '1' LIMIT 1");
$lead_num = $lead_res->numRows();
if($lead_num == 1){
$lead_get = $lead_res->fetchRow(MDB2_FETCHMODE_ASSOC);
$lead_id = $lead_get['lead_id'];
下面有更多代码,
提前感谢您的帮助。
答案 0 :(得分:0)
不知道您正在使用的Database TABLE中的可用列;很难肯定地说。我建议你:
由于我们要查看表架构: ORDER BY可以对ASC或DESC的结果集进行排序;默认值为ASC(从最低位置开始,然后从那里开始)。
据推测,ASC订单应该适用于您的电话帐号;但也许你可以添加lead_timeout,如果这是一个相关值 - 是自上次调用以来的时间吗?
如果是这样的话可能会有所帮助:
ORDER BY `lead_callcount` ASC,
`lead_timeout` ASC
如果最好有更长的(而不是更短的超时),你可以选择将lead_timeout更改为DESC
我在我的本地数据库中创建了一个测试表,并试用了你提供的查询,其中一个ORDER BY键入了lead_callcount,它似乎工作正常。
用于检查基本语法和查询结构等内容;上面的查询看起来像这样,添加了ORDER BY:
SELECT lead_id, lead_callcount, lead_timeout FROM `leads`
WHERE (`lead_disposition` IS NULL OR `lead_disposition` = 1)
AND (`lead_timeout` IS NULL OR `lead_timeout` < NOW())
AND (`lead_locked` = '0000-00-00 00:00:00' OR `lead_locked` IS NULL)
AND `lead_active` = '1'
ORDER BY `lead_callcount` ASC
#,`lead_timeout` ASC #optional sort by lead_timeout