考虑到可读性和性能,更好的方式来格式化后面的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