我使用 MySQL连接器C 6.0.2 ,我需要选择Table1并读取一些值然后切换到table2并在那里读取值等等,我有两个以上表我需要从表切换到表。我怎样才能做到这一点 ?
示例代码:
connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0);
if(connect)
{
MYSQL_RES *res_set;
MYSQL_ROW row;
////table1
mysql_query(connect,"SELECT * FROM `Table1` WHERE `Column2`='1234'");
unsigned int i = 0;
res_set = mysql_store_result(connect);
unsigned int numrows = mysql_num_rows(res_set);
if(numrows==0)
{
return false;
}else
{
while ((row = mysql_fetch_row(res_set)) != NULL)
{
if(strcmp(row[2], "true")==NULL)
{/////////Here I need to read or get the values from Table2
///Select table two
}else
return false;
}
}
}
更新:我想我已经解决了,非常简单
connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0);
if(connect)
{
MYSQL_RES *res_set;
MYSQL_ROW row;
////table1
mysql_query(connect,"SELECT * FROM `Table1` WHERE `Column2`='1234'");
res_set = mysql_store_result(connect);
unsigned int numrows = mysql_num_rows(res_set);
if(numrows==0)
{
return false;
}else
{
while ((row = mysql_fetch_row(res_set)) != NULL)
{
if(strcmp(row[2], "true")==NULL)
{/////////Here I need to read or get the values from Table2
///Select table two
MYSQL_RES *res_set2;
////table2
mysql_query(connect,"SELECT * FROM `Table2` WHERE `Column2`='1234'");
res_set2 = mysql_store_result(connect);
unsigned int numrows2 = mysql_num_rows(res_set2);
if(numrows2==0)
{
//no result
}else
{
//do something
}
}else
return false;
}
}
}
答案 0 :(得分:0)
您拥有从查询中获得的res_set
变量;您从第二个查询中获取另一个变量。您不必在表之间切换,只需从正确的查询结果中获取正确的值。
另请注意,这听起来很像您应该在SQL查询中执行此操作,而不是在代码内部,但这完全取决于您要执行的操作。
答案 1 :(得分:0)
我建议您使用SQL语句从两个表中返回结果集。
研究" SELECT JOIN"声明。
经验法则是让数据执行大部分数据库工作,包括搜索多个表。