如何在SQL中使用IN子句用于C?

时间:2015-10-26 10:18:03

标签: c sqlite

我遇到了在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);

我能看到结果。

请让我知道第一个查询和相应代码中缺少的内容。

感谢。

1 个答案:

答案 0 :(得分:1)

假设您的IN语句中包含可变数量的值,那么在sqLite中这是不可能的。相反,您可以将查询作为字符串与其他程序逻辑一起剪切,然后像执行任何硬编码一样执行它。