C 如何从带有“union all”子句的sqlite3准备语句中获取数据

C 如何从带有“union all”子句的sqlite3准备语句中获取数据,c,sqlite,C,Sqlite,我有三个SELECT语句与UNION ALL相关。我设置了复合语句,以便sqlite3_prepare_v2为我准备结果行。如果我要使用生成的数据,我可以使用for循环吗 这样行吗?我试过了,但它给了我垃圾数据。有没有其他方法可以实现这一点?这很有效。垃圾数据完全来自其他地方。您可以使用此选项来缩短键入的代码量,但请注意,此选项的使用量是有限制的 附加信息:您可以使用UNION从不同的表中选择,每个表使用相同的WHERE参数,假设您让用户输入两个数据参数,并且有四个表使用这些参数,不同的只是一些

我有三个SELECT语句与UNION ALL相关。我设置了复合语句,以便sqlite3_prepare_v2为我准备结果行。如果我要使用生成的数据,我可以使用for循环吗


这样行吗?我试过了,但它给了我垃圾数据。有没有其他方法可以实现这一点?

这很有效。垃圾数据完全来自其他地方。您可以使用此选项来缩短键入的代码量,但请注意,此选项的使用量是有限制的

附加信息:您可以使用UNION从不同的表中选择,每个表使用相同的WHERE参数,假设您让用户输入两个数据参数,并且有四个表使用这些参数,不同的只是一些附加值。假设我想得到附加列的值。我将让用户键入与所需输出所属的表不同的内容。使用与UNION组合的SELECT语句,可以比进行实际比较和冗长的迭代更容易地选择所需的输出

int i;
for(i = 0; sqlite3_step(res) == SQLITE_ROW; i++) {
    if (i == 0) data1 = sqlite3_column_int(res,0);
    else if (i == 1) data2 = sqlite3_column_int(res,0);
    else data3 = sqlite3_column_int(res,0);
}