Xcode 開発で、 sqlite(DB)を使用することがあります。
抽出時(select命令)、検索条件を検索の都度変更したいときがあります。
select命令で、可変変数を使用する際の方法をまとめました。
以下のコードは、Xcode (Objective-c)です。他の言語も同様の考え方で対応できます。
簡単なサンプルです。
条件によって、時刻を可変変数にセットしてその時刻で検索する方法です。
sqliteのselect文で、可変変数の前後には半角空白が必要です。
sqlite3 *database; if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) { 途中の処理は、割愛します。 NSString *Wtime; //条件により時刻を判定 検索で使用する時刻をセット if (xxxxxxxxxx > … ){ Wtime = "1234";//12時34分 }else{ Wtime = "1456";//14時56分 } NSString *sql_a = @"select ikisaki,time from bustable where time >= "; NSString *sql_b = @" order by time"; NSString *str10 = [sql_a stringByAppendingString:Wtime]; NSString *str11 = [str10 stringByAppendingString:sql_b]; const char *sql = [str11 UTF8String]; sqlite3_stmt *selectStatement; if(sqlite3_prepare_v2(database, sql, -1, &selectStatement, NULL) == SQLITE_OK) { 途中の処理は、割愛します。 } sqlite3_close(database);