Was ist der beste Weg zum Formatieren der folgenden SQL-Anweisung unter Berücksichtigung der Lesbarkeit und Leistung. Vielen Dank.Was ist der empfohlene Weg, um diese SQL-Anweisung zu schreiben?
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";
EDIT: 1.sqlite3 Datenbank-Engine; mit C-API, läuft auf MIPS24K 250M Embedded-CPU.
2.Der zweite, vierte, sechste Parameter ist derselbe und der dritte, fünfte, siebte ist derselbe.
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);
Welche Abfrage-Engine verwenden Sie? Wir könnten konkretere Empfehlungen geben, wenn wir es wüssten. – SqlRyan
Ist das C/C++? Sie könnten einige Backslash-Zeilenumbrüche verwenden, um diese Zeichenfolge zu zerhacken und einige Anführungszeichen zu speichern. – maxwellb
Können Sie angeben, welche Parameter identisch sind? (Ich nehme an, dass der dritte Ausdruck im OR die gleichen Parameter wie die ersten beiden hat) –