Мне интересно, можно ли параметризировать столбец сортировки в sqlite.
Я бы хотел подготовить один sqlite3_stmt следующим образом (без простоты проверяя коды возврата).
sqlite3_stmt* the_statement;
const char *sql = "SELECT column1, column2, column3 FROM table1 WHERE column4 = ? ORDER BY ? ASC"
sqlite3_prepare_v2(database, sql, -1, &the_statement, NULL)
и используйте его вот так
sqlite3_bind_int(the_statement, 1, 1);
sqlite3_bind_int(the_statement, 2, COLUMN_TO_SORT_BY);
while (sqlite3_step(the_statement) == SQLITE_ROW){
//Do something with each row.
}
sqlite3_reset()
Когда я выполняю этот код, меняя значение COLUMN_TO_SORT_BY с 1 на 3, мои результаты всегда возвращаются в одном и том же порядкеПорядок, в котором они хранятся в таблице, но также может быть отсортирован по column1).
Итак, мой вопрос: можете ли вы параметризировать аргумент ORDER BY в выражении sqlite при использовании C API?