我遇到了在SQL库中为SQLite执行SQL查询的问题。 这里的问题是查询包含IN子句。
例如,
查询:
SELECT * FROM EMPLOYEE WHERE ID IN (?);
C:
sqlite3_stmt *elems_stmt;
char empIds[40];
...
...
...
sqlite3_bind_text(elems_stmt, 1, (const char *)empIds, -1, SQLITE_TRANSIENT);
这里的empIds可能 4,5,6
但结果是,elems_stmt没有得到任何结果。
相反,如果我将查询中的值硬编码为
SELECT * FROM EMPLOYEE WHERE ID IN (4,5,6);
我能看到结果。
请让我知道第一个查询和相应代码中缺少的内容。
感谢。
答案 0 :(得分:1)
假设您的IN
语句中包含可变数量的值,那么在sqLite中这是不可能的。相反,您可以将查询作为字符串与其他程序逻辑一起剪切,然后像执行任何硬编码一样执行它。