2013-08-16 54 views
0

我在這裏有一個獨特的問題。我正在教自己如何編寫代碼,請親切地與我聯繫。我有一個約會應用程序,從兩個表中讀取,例如,用戶表和SMS訂閱表。回覆:短信訂閱查詢

users表中有所有關於用戶的個人信息,即他們的性別,姓名,宗教信仰,職業等

雖然認購表具有的時間頻率的用戶應收到系統自動文本。收到的文本基本上是異性的聯繫方式。

我的問題是,我怎麼能生成一個查詢,在任何給定的時間發送異性的隨機聯繫方式。

下面的代碼僅對用戶發起的請求執行查詢。雖然我更感興趣的還包括向用戶發送異性隨機文本的查詢,特別是當用戶未能自己提交請求時。我應該怎麼做,親切的問候!

public void ExecuteSubscriptions() { 
/* 609 */  this.var_returnMessage = ""; 
/* 610 */  String text = ""; 
/* 611 */  SqlConn lConn = null; 
/*  */  try 
/*  */  { 
/* 615 */  String queryTmp = "select abs(DATEDIFF(datelastsent, NOW())) as gapTime, phone, request, SubscriptionFrequency from where abs(DATEDIFF(datelastsent, NOW())) > 0 "; 
/* 616 */  lConn = new SqlConn(false, true); 
/* 617 */  if ((lConn.sqlConnection != null) && (lConn.statement != null)) 
/*  */  { 
/* 619 */   ResultSet rs = lConn.statement.executeQuery(queryTmp); 
/*  */ 
/* 621 */   if (rs != null) 
/*  */   { 
/* 623 */   String value = ""; 
/*  */ 
/* 625 */   while (rs.next()) { 
/* 626 */    value = rs.getString("SubscriptionFrequency").toUpperCase().substring(0, 2); 
/* 627 */    String[] smsParts; 
/*  */    smsParts = rs.getString("request").split(""); 
/* 628 */    this.var_sender = rs.getString("phone"); 
/* 629 */    int var_num = Integer.parseInt(value); 
/* 630 */    if (Integer.parseInt(rs.getString("gapTime")) >= var_num) { 
/* 631 */    if ((!GetResults(CreateRequestQuery(smsParts, RequestTypes.NEWRESULTSONLY))) && 
/* 632 */     (!GetResults(CreateRequestQuery(smsParts, RequestTypes.MIXEDRESULTS)))) { 
/* 633 */     this.var_totalResultsForUser = 0; 
/* 634 */     this.var_returnMessage = "Dear Subscriber, at the moment there were no results matching your subscription criteria, try again later."; 
/*  */    } 
/*  */ 
/* 637 */    text = new StringBuilder().append("update subscriptions set datelastsent = NOW() where phone = '").append(rs.getString("phone")).append("' and request = '").append(rs.getString("request")).append("'").toString(); 
/*  */    } 
/*  */ 
/*  */   } 
/*  */ 
/*  */   } 
/*  */ 
/* 645 */   if ((this.var_returnMessage != null) && 
/* 646 */   (EngineIgniter.SendMessage(this.var_sender, "KQ Solutions", this.var_returnMessage))) { 
/* 647 */   this.var_dm.CreateEntity(text); 
/*  */   } 
/*  */  } 
/*  */  } 
/*  */  catch (Exception ex) 
/*  */  { 
/* 653 */  this.var_dm.LogError(ex.getMessage(), "GENERIC"); 
/*  */  } 
/*  */ } 
/*  */ 
+0

這RDBMS?當然你的編輯可以顯示行號? – exussum

+1

我對行號表示歉意...忘了刪除它們..我的錯誤 –

+0

此代碼片段來自反編譯器,不是嗎? – Khinsu

回答

0

「隨機」可能不是最好的方法。您可能希望隨機選擇一段時間內沒有生成文本消息的用戶。

例如,選擇一個在6小時內沒有文字的隨機用戶。

你還沒有說你正在使用,但爲什麼你已經生成行號查詢將類似於

SELECT * from subscriptions where sex = (sex variable) and datelastsent < date_add (now(), interval - 6 hours) order by rand() limit 1 
+0

嗨,使用MYSQL作爲我的數據庫管理系統,謝謝! –