考慮到可讀性和性能,更好的方式來格式化後面的sql語句。謝謝。什麼是寫這個SQL語句的推薦方法?
sql = (char *)" SELECT * ,rowid FROM tblEvent_basic "
" WHERE "
" service_id = ? AND "
" ("
" (start_time >= ? AND start_time <= ?) OR "
" (end_time > ? AND end_time <?) OR "
" (start_time < ? AND end_time > ?)"
")"
" ORDER by start_time ASC";
編輯: 1.sqlite3數據庫引擎;使用C API;在MIPS24K 250M嵌入式CPU上運行。
2.第2,4,6參數相同,與第3,5,7條相同。
rc = sqlite3_bind_int(sql_stmt,1,service_id);
rc = sqlite3_bind_text(sql_stmt,2,ts.start, 5, SQLITE_TRANSIENT);
rc = sqlite3_bind_text(sql_stmt,3,ts.end , 5, SQLITE_TRANSIENT);
rc = sqlite3_bind_text(sql_stmt,4,ts.start, 5, SQLITE_TRANSIENT);
rc = sqlite3_bind_text(sql_stmt,5,ts.end , 5, SQLITE_TRANSIENT);
rc = sqlite3_bind_text(sql_stmt,6,ts.start, 5, SQLITE_TRANSIENT);
rc = sqlite3_bind_text(sql_stmt,7,ts.end , 5, SQLITE_TRANSIENT);
您正在使用哪種查詢引擎?如果我們知道,我們可以提供更具體的建議。 – SqlRyan 2009-07-24 06:41:02
這是C/C++嗎?你可以使用一些反斜槓 - 換行符來截斷這個字符串,並保存一些引號。 – maxwellb 2009-07-24 06:41:19
你能指出哪些參數是相同的嗎? (我猜OR中的第三個表達式與前兩個參數具有相同的參數) – 2009-07-24 06:50:50